Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
Заблокирован
1

Label vs TextBlock

13.01.2016, 16:13. Показов 6941. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
чем отличаются эти 2 контрола? вроде и тот и другой только выводят текст... в windows forms всегда для этого был один label, зачем тогда тут ввели этот textblock?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2016, 16:13
Ответы с готовыми решениями:

ProgressBar. Отображение % выполнения на label - как сделать фон label прозрачным?
Есть прогрессбар, есть лэйбл, на котором отображается ход выполнения. Лэйбл помещена на...

Не срабатывает Label _Click при программном создании Label на UserForm
Всем доброго времени суток! После программного создания Label: With...

Обьект Label(сумма своих денег+заработанные= вывести в Label)
здравствуйте скажите пожалуйста: у меня стоит timer хочу чтобы он прибавлял в label число и...

Как вставить текст в label на середине, то есть на центре label?
Здравствуйте. Как вставить текст в label на середине, то есть на центре label?

9
746 / 487 / 187
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
13.01.2016, 16:35 2
Лучший ответ Сообщение было отмечено Penelent как решение

Решение

Penelent, если коротко, то Label - тяжелый, TextBlock - лёгкий. TextBlock наследует напрямую от FrameworkElement, и, в отличие от Label, не тащит за собой всю функциональность ContentControl, от которого наследует Label. Если нужен способ отобразить только текст - выбирайте TextBlock.
3
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
13.01.2016, 18:25 3
А ещё label может иметь только один вложенный элемент, а textblock несколько, что иногда ползено когда куски отображаемого текста зависят о каких-то условий, например, во ViewModel
0
19 / 18 / 14
Регистрация: 06.03.2013
Сообщений: 335
14.01.2016, 10:52 4
Penelent, Tsin, Vigelforts, Не знаю как для вас а для меня важным преимуществом textblock'а это то что textblock легче всего отцентрировать
0
0 / 0 / 0
Регистрация: 17.07.2018
Сообщений: 1
17.07.2018, 16:03 5
<Label> поддерживает клавиши быстрого доступа. Источник тут:https://metanit.com/sharp/wpf/5.5.php
0
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 962
22.10.2020, 16:24 6
продолжаю тему.

Цитата Сообщение от Tsin Посмотреть сообщение
Label - тяжелый, TextBlock - лёгкий
Это сказывается на скорости работы приложения?
0
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
22.10.2020, 22:53 7
Цитата Сообщение от Khludenkov Посмотреть сообщение
Это сказывается на скорости работы приложения?
Если их несколько сот, то да.
Скорость работы у них значительно будет отличаться.
Но по сравнению со скоростью GUI, работы пользователя - это не существенно.

Но другой аспект гораздо важнее.
Label - это ContentControl.
И он сам по себе никакой текст вывести не может.
Для вывода текста он использует шаблон данных по умолчанию,
А шаблон данных по умолчанию - это TextBlock!

То есть такой код label.Content = "Любой текст"; как бы будет динамически транслирован в label.Content= new TextBlock() {Text = "Любой текст"};.
А он будет обёрнут ещё ContentPresenter и Border.
Если во время исполнения программы вы откроете "Динамическое визуальное дерево", то увидите это сами.
Label vs TextBlock


А TextBlock - это очень простой элемент.
Он даже не Контрол и у него нет шаблона.
Он производный непосредственно от FrameworkElement.
3
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 962
23.10.2020, 08:14 8
Элд Хасп, спасибо.

Особенно когда типа
C#
1
Content = intValue
0
8 / 8 / 1
Регистрация: 10.09.2019
Сообщений: 213
23.10.2020, 13:50 9
Цитата Сообщение от Penelent Посмотреть сообщение
чем отличаются эти 2 контрола? вроде и тот и другой только выводят текст... в windows forms всегда для этого был один label, зачем тогда тут ввели этот textblock?
Даже если TextBlock живет в System.Windows.Controls пространстве имен это не кантрол. Он происходит напрямую от FrameworkElement.
В свою очередь Label происходит от ContentControl.

Это означает, что Label может:
  • быть задан custom control template.
  • показывать данные не только формата string.
  • быть применена datatemplate к ее контенту.
  • сделано все что позволяет ContentControl, в отличии от framework element.
  • "сереет" когда disabled.
  • поддерживает access keys.

IMO, мне не очень нравится TextBlock, в последнее время перешел на TextBox. Пока радует.
1
Модератор
Эксперт .NET
15470 / 10714 / 2788
Регистрация: 21.04.2018
Сообщений: 31,544
Записей в блоге: 2
23.10.2020, 14:04 10
Цитата Сообщение от кружок-ДДТ Посмотреть сообщение
IMO, мне не очень нравится TextBlock, в последнее время перешел на TextBox. Пока радует.
У каждого свои задачи.
Если нужно вывести разноформатированный текст, то в TextBlock есть коллекция Inlines.
С TextBox такой "фокус" не пролезет.

Если же нужен однотипный (с другими TextBox) вывод текста в поле, то действительно TextBox "только для чтения" для этого удобен.
0
23.10.2020, 14:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2020, 14:04
Помогаю со студенческими работами здесь

Записать в Label на второй форме контент Label, находящейся на первой
На форме один скажем, находится Лабел1, как сделать так, что находится (название) в этом Лабел...

Нужно сделать сохранение значения label в файл и обратную загрузку значений в label
Нужно сделать так, чтобы при нажатии на кнопку &quot;Сохранить&quot;, мои 5 надписей на странице были...

Как вывести значение выделенной строки в listwidget в label . а Так же из combobox в label
добрый вечер. как вывести значение выделенной строки в listwidget в label . а Так же из combobox в...

Перенести текст с одного label на label в другом окне
Как перенести текст с label одного окна в label другого окна? ссылка на гитхаб: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru