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