Label和TextBlock之间的区别

Ram*_*eef 123 wpf label textblock

根据Windows应用程序开发与Microsoft .NET 4 70-511培训工具包

Label控件和TextBlock控件有什么区别,因为它们都是内容控件而只是显示文本?

bij*_*iju 203

TextBlock不是控件

即使TextBlock存在于System.Windows.Controls命名空间中,它也不是控件.它直接来源于FrameworkElement.另一方面,标签来源于ContentControl.这意味着Label可以:

  1. 获得自定义控件模板(通过Template属性).
  2. 显示除字符串以外的数据(通过Content属性).
  3. DataTemplate在其内容中应用(通过ContentTemplate财产).
  4. 做任何其他ContentControl无法做到的事情FrameworkElement.

    • Label 禁用时,文本显示为灰色
    • Label 支持访问密钥
    • Label 比...重得多 TextBlock

资源

下面有一些更有趣的读物


Sno*_*ear 25

LabelContentControl,这意味着你可以设置任何东西作为它的内容.绝对任何东西,包括字符串,数字,日期,其他控件,图像,形状等TextBlock只能处理strings.

  • "其他控件"包括TextBlock,因此Label可以包含例如包装文本. (3认同)

小智 23

标签通常支持单行文本输出,而TextBlock用于多行文本显示.

例如在wpf中TextBlock有一个TextWrapping启用多行输入的属性; 标签没有这个.

  • Label具有任意Content属性.这可以是字符串,但它也可以是TextBlock(或任何其他控件),因此通过使用TextBlock作为内容,标签可以是多行的. (2认同)

小智 8

尽管TextBlock和Label都用于显示文本,但它们在封面上却完全不同.

=> 标签继承自ContentControl,这是一个基类,可以显示几乎任何可以想象的UI.

=> TextBlock的,在另一方面,直接从继承FrameworkElement的,因而上是共同的,从控制继承所有元素的行为错过.TextBlock的浅层继承层次结构使控件比Label更轻,更适合更简单,非交互的场景.

PS:但是,如果您希望访问键工作或想要更灵活或图形化设计,则需要使用Label.