Согласно учебному комплекту для разработки приложений Windows с Microsoft .NET 4 70-511
В чем разница между Label
контролем и TextBlock
управлением , так как оба управления содержимым и только для отображения текста?
Согласно учебному комплекту для разработки приложений Windows с Microsoft .NET 4 70-511
В чем разница между Label
контролем и TextBlock
управлением , так как оба управления содержимым и только для отображения текста?
Ответы:
TextBlock не является элементом управления
Хотя
TextBlock
он находится в пространстве имен System.Windows.Controls, он не является элементом управления. Это происходит непосредственно изFrameworkElement
. Ярлык, с другой стороны, происходит отContentControl
. Это означает, чтоLabel
можно:Template
свойство).Content
свойство).DataTemplate
к его содержимому (черезContentTemplate
свойство).Делайте все, что
ContentControl
может, чтоFrameworkElement
не может.Label
текст неактивен при отключенииLabel
поддерживает ключи доступаLabel
намного тяжелее чемTextBlock
Источник
Еще несколько интересных статей ниже
источник
Ярлыки обычно поддерживают вывод однострочного текста, в то время как TextBlock предназначен для отображения многострочного текста.
Например, в wpf TextBlock имеет свойство,
TextWrapping
разрешающее многострочный ввод; На этикетке этого нет.источник
Label
этоContentControl
означает, что вы можете установить для него все что угодно. Абсолютно все, включая строки, числа, даты, другие элементы управления, изображения, формы и т. Д.,TextBlock
Может обрабатываться толькоstrings
.источник
Хотя TextBlock и Label используются для отображения текста, внутренне они сильно различаются.
=> Label наследуется от ContentControl , базового класса, который позволяет отображать практически любой пользовательский интерфейс, который только можно вообразить.
=> TextBlock , с другой стороны, наследуется непосредственно от FrameworkElement , таким образом упуская поведение, которое является общим для всех элементов, унаследованных от Control. Неглубокая иерархия наследования TextBlock делает элемент управления легче, чем Label, и лучше подходит для более простых, неинтерактивных сценариев.
PS: Однако, если вы хотите, чтобы ключи доступа работали или хотите более гибкий или графический дизайн, вам нужно использовать Label.
источник
Вероятно, наиболее раздражающей особенностью
TextBlock
является неявное поведение поиска стиля, которое ограничено только ближайшимDataTemplate
. Это поведение по умолчанию дляControl
элементов, отличных от xaml.Дает результат:
Вы можете прочитать больше об этом здесь .
источник