在标签中使用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隐式的风格定义,以便它适用于应用程序中的所有标签

否则,如果唯一的要求是显示一些带下划线的文本,则应该使用相同的文本块。