Заблокирован
|
|
1 | |
Label vs TextBlock13.01.2016, 16:13. Показов 6941. Ответов 9
Метки нет (Все метки)
чем отличаются эти 2 контрола? вроде и тот и другой только выводят текст... в windows forms всегда для этого был один label, зачем тогда тут ввели этот textblock?
0
|
13.01.2016, 16:13 | |
Ответы с готовыми решениями:
9
ProgressBar. Отображение % выполнения на label - как сделать фон label прозрачным? Не срабатывает Label _Click при программном создании Label на UserForm Обьект Label(сумма своих денег+заработанные= вывести в Label) Как вставить текст в label на середине, то есть на центре label? |
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 |
0
|
Модератор
|
|
22.10.2020, 22:53 | 7 |
Если их несколько сот, то да.
Скорость работы у них значительно будет отличаться. Но по сравнению со скоростью GUI, работы пользователя - это не существенно. Но другой аспект гораздо важнее. Label - это ContentControl. И он сам по себе никакой текст вывести не может. Для вывода текста он использует шаблон данных по умолчанию, А шаблон данных по умолчанию - это TextBlock! То есть такой код label.Content = "Любой текст"; как бы будет динамически транслирован в label.Content= new TextBlock() {Text = "Любой текст"}; .А он будет обёрнут ещё ContentPresenter и Border. Если во время исполнения программы вы откроете "Динамическое визуальное дерево", то увидите это сами. А TextBlock - это очень простой элемент. Он даже не Контрол и у него нет шаблона. Он производный непосредственно от FrameworkElement.
3
|
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 962
|
||||||
23.10.2020, 08:14 | 8 | |||||
Элд Хасп, спасибо.
Особенно когда типа
0
|
8 / 8 / 1
Регистрация: 10.09.2019
Сообщений: 213
|
|
23.10.2020, 13:50 | 9 |
Даже если TextBlock живет в
System.Windows.Controls пространстве имен это не кантрол. Он происходит напрямую от FrameworkElement .В свою очередь Label происходит от ContentControl .Это означает, что Label может:
IMO, мне не очень нравится TextBlock, в последнее время перешел на TextBox. Пока радует.
1
|
Модератор
|
|
23.10.2020, 14:04 | 10 |
У каждого свои задачи.
Если нужно вывести разноформатированный текст, то в TextBlock есть коллекция Inlines. С TextBox такой "фокус" не пролезет. Если же нужен однотипный (с другими TextBox) вывод текста в поле, то действительно TextBox "только для чтения" для этого удобен.
0
|
23.10.2020, 14:04 | |
23.10.2020, 14:04 | |
Помогаю со студенческими работами здесь
10
Записать в Label на второй форме контент Label, находящейся на первой Нужно сделать сохранение значения label в файл и обратную загрузку значений в label Как вывести значение выделенной строки в listwidget в label . а Так же из combobox в label Перенести текст с одного label на label в другом окне Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |