WPF TextBlock元素和Label控件有什么区别?
时间:2020-03-05 18:52:14 来源:igfitidea点击:
在视觉上,以下两个片段均产生相同的UI。那么为什么有2个控件。
片段1
<TextBlock>Name:</TextBlock> <TextBox Name="nameTextBox" />
片段2
<Label>Name:</Label> <TextBox Name="nameTextBox" />
(好吧,我本人将自己回答...以为这是我今天从WPF编程中学到的一个有用的窍门)
解决方案
回答
标签具有重要的焦点处理职责,其目的是允许我们使用访问密钥放置标题。它具有Target属性,该属性指示访问密钥的目标。像这样...
<Label Target="{Binding ElementName=nameTextBox}">_Name:</Label> <TextBox x:Name="nameTextBox" />
在没有Target属性的情况下,Label控件没有任何用处。如果我们按指示"无法处理请求"的访问键,我们只会听到哔哔声
回答
WPF Textblock继承自FrameworkElement,而不是继承自System.Windows.Control(如Label控件)。这意味着Textblock更轻巧。使用文本块的缺点是不支持访问/加速键,也没有指向目标的其他控件的链接。
当我们想单独显示文本时,请使用TextBlock。好处是显示文本的一种轻松,高性能的方式。
当我们要将文本与另一个控件(如TextBox)关联时,请使用Label控件。好处是访问键和对目标控件的引用。
回答
在需要最少文本支持的情况下,例如控件的标签,可以将Label用作TextBlock的替代方法。使用Label可能是有利的,因为与TextBlock相比,它需要的资源更少(重量更轻)。
回答
有了TextBlock,我想可以使用TextWrapping轻松获得多行支持。
在这种情况下,请使用Label
,例如显示验证消息时,需要使用<AccessKey>标签,该标签不如TextBlock那样简单。
另一方面,使用TextBlock
不允许我们设置BorderBrush
属性。
因此,对我来说,这两个控件应合并为文本全功能控件。