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