在标签中使用TextBox而不是仅使用TextBox有什么意义?
问题描述:
我回答前一个问题,下面溶液提供(和极大的帮助):在标签中使用TextBox而不是仅使用TextBox有什么意义?
<sdk:Label>
<TextBlock Text="This is underlined" TextDecorations="Underline" />
</sdk:Label>
看来,下面的XAML将得到相同的结果:
<TextBlock Text="This is underlined" TextDecorations="Underline" />
所以我的问题是:为什么要将TextBlock放入标签中?这给你带来了什么好处?以这种或那种方式做这件事的标准是什么?
正如您可能猜到的那样,对于我尚未了解的XAML对象,可能存在一些基本问题。
答
在大多数一般情况下,它没有任何优势。
事实上,在情况下,你已经定义的,的TextBlock应该不与标签包裹。
标签是ContentControl。它使用ContentTemplate呈现给它的任何类型的内容。默认情况下,当您尝试渲染字符串时,它在内部使用TextBlock来渲染它。
所以,以下是相同的:
<Label>
Text
</Label>
<Label>
<TextBlock>
Text
</TextBlock>
</Label>
在这种情况下,使用标签只给你一个优势,如果你有一个自定义的ContentTemplate使用内部的App.xaml隐式的风格定义,以便它适用于应用程序中的所有标签。
否则,如果唯一的要求是显示一些带下划线的文本,则应该使用相同的文本块。