Чем отличается textbox от textblock
Перейти к содержимому

Чем отличается textbox от textblock

  • автор:

Чем отличается textbox от textblock

Элемент предназначен для вывода текстовой информации, для создания простых надписей:

Ключевым свойством здесь является свойство Text , которое задает текстовое содержимое. Причем в случае <TextBlock>Текст1</TextBlock> данное свойство задается неявно.

С помощью таких свойств, как FontFamily, TextDecorations и др., мы можем настроить отображение текста. Однако мы можем задать и более сложное форматирование, например:

TextBlock в WPF

Элементы Run представляют куски обычного текста, для которых можно задать отдельное форматирование.

Для изменения параметров отображаемого текста данный элемент имеет такие свойства, как LineHeight , TextWrapping и TextAlignment .

Свойство LineHeight позволяет указывать высоту строк.

Свойство TextWrapping позволяет переносить текст при установке этого свойства TextWrapping=»Wrap» . По умолчанию это свойство имеет значение NoWrap , поэтому текст не переносится.

Свойство TextAlignment выравнивает текст по центру (значение Center), правому (Right) или левому краю (Left): <TextBlock TextAlignment=»Right»>

Для декорации текста используется свойство TextDecorations , например, если TextDecorations=»Underline» , то текст будет подчеркнут.

Если нам вдруг потребуется перенести текст на другую строку, то тогда мы можем использовать элемент LineBreak :

TextBox

Если TextBlock просто выводит статический текст, то этот элемент представляет поле для ввода текстовой информации.

Он также, как и TextBlock, имеет свойства TextWrapping , TextAlignment и TextDecorations .

С помощью свойства MaxLength можно задать предельное количество вводимых символов.

В коде C# мы можем обработать событие изменения текста:

По умолчанию, если вводимый текст превышает установленные границы поля, то текстовое поле растет, чтобы вместить весь текст. Но визуально это не очень хорошо выглядит. Поэтому, как и в случае с TextBlock, мы можем перенести непомещающийся текст на новую строку, установив свойство TextWrapping=»Wrap».

Чобы переводить по нажатию на клавишу Enter курсор на следующую строку, нам надо установить свойство AcceptsReturn=»True» .

Также мы можем добавить полю возможность создавать табуляцию с помощью клавиши Tab, установив свойство AcceptsTab=»True»

Для отображения полос прокрутки TextBox поддерживает свойства VerticalScrollBarVisibility и НоrizontalScrollBarVisibility :

Возможно, при создании приложения нам потребуется сделать текстовое поле недоступным для ввода (на время в зависимости от условий или вообще), тогда для этого нам надо установить свойство IsReadOnly=»True» .

Для выделения текста есть свойства SelectionStart , SelectionLength и SelectionText . Например, выделим программно текст по нажатию кнопки:

Обработчик нажатия кнопки:

Проверка орфографии

TextBox обладает встроенной поддержкой орфографии. Чтобы ее задействовать, надо установить свойство SpellCheck.IsEnabled=»True» . Кроме того, по умолчанию проверка орфографии распространяется только на английский язык, поэтому, если приложение заточено под другой язык, нам надо его явным образом указать через свойство Language :

Проверка орфографии в WPF

Метка (Label)

Главной особенностью меток является поддержка мнемонических команд-клавиш быстрого доступа, которые передают фокус связанному элементу. Например,

Теперь, нажав на клавишу «п», мы переведем фокус на связанное текстовое поле. При вызове приложения подчеркивание не отображается, чтобы отображать подчеркивание, надо нажать на клавишу Alt. Тогда чтобы перевести фокус на связанное текстовое поле необходимо будет нажать сочетание Alt + «п». Если не предполагается использование клавиш быстрого доступа, то для вывода обычной текста вместо меток лучше использовать элемент TextBlock.

PasswordBox

Элемент предназначен для ввода парольной информации. По сути это тоже текстовое поле, только для ввода символов используется маска. Свойство PasswordChar устанавливает символ маски, отображаемый при вводе пароля. Если это свойство не задано, то по умолчанию для маски символа используется черная точка. Свойство Password устанавливает парольную строку, отображаемую по умолчанию при загрузке окна приложения.

PasswordBox в WPF

RichTextBox

Для вывода текстового содержимого, насыщенного форматированием, графикой, предназначен RichTextBox. Можно даже сказать, что он выводит не просто текст, а документы с более сложным форматированием, чем обычный TextBox. Более подробно о нем, а также как на его основе создать простой текстовый редактор, мы поговорим в главе, посвященной документам.

Есть ли разница между WPF TextBlock и TextBox?

Какие критерии следует учитывать при выборе одного из этих двух элементов управления?

2 ответы

Общие для TextBlocks и TextBoxes:

  • Может использоваться для отображения текста
  • Можно установить определенную высоту и ширину или установить значение «Авто», чтобы они увеличивались в размере вместе с текстом.
  • Можно установить размер шрифта, тип шрифта, стиль шрифта, обтекание и диапазон влево, вправо или по центру.
  • Можно установить непрозрачность и применить пиксельные шейдеры.

Текстовый блок:

  • Используется для отображения текста, более сфокусированного типографски.
  • Может содержать текст с разными цветами, шрифтами и размерами.
  • Высоту строки также можно увеличить по сравнению с настройкой по умолчанию, чтобы увеличить расстояние между каждой строкой текста.
  • Текст внутри TextBlock не может быть выбран пользователем.

Текстовое окно:

  • Используется для отображения текста, более сфокусированного на вводе контента или когда контент должен быть доступен для выбора пользователем.
  • Можно установить только один цвет, один размер шрифта, один тип шрифта и т. д.
  • Иметь фиксированный межстрочный интервал.
  • Также можно установить фиксированную высоту и ширину, но также включить полосы прокрутки, чтобы содержимое расширялось.

ответ дан 29 мар ’17, в 22:03

Как фокусируется текст? Ох, ладно; Мне потребовалось некоторое время, чтобы понять, что focus описывает элемент управления, а не текст. — Сэм Хоббс

TextBlock — это более легкий элемент управления для отображения текста, а TextBox используется, когда вам требуется ввод данных пользователем или редактирование существующего текста. Доказательство использования памяти.

Создан 21 июля ’18, 14:07

Не уверен, что TextBlock легче TextBox. Доказательство? — Майк Кескинов

Привет, Майк, конечно — с точки зрения использования памяти текстовое поле намного тяжелее: s22.postimg.org/qse9gxfch/memusage.png — ВидасВ

На случай, если пробное изображение в какой-то момент в будущем исчезнет. Ваш пример показывает 14-кратную разницу в использовании памяти. Код использовал GC.GetTotalMemory(true) до и после выполнения stack.Children.Add в новом текстовом блоке и текстовом поле соответственно, чтобы проверить, сколько памяти отличается. — Алекс Телон

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками wpf textbox textblock or задайте свой вопрос.

Чем отличается textbox от textblock

The above introduces the use of simple Button components, with pictures, and WinForm components in WPF.WPF button

This time introduces the difference between TextBox / TextBlock / Label

Same point

Three can use the display text content, all of which are set to adjust the background brush, font, style, type, anchor position, size zoom transparent, etc.

difference

The most intuitive difference is that TextBox is an editable component that can be edited at runtime, often used as modification / input.

TextBlock and Label are not editable

Label uses the content attribute instead of the Text property, allows you to manage other controls, can use template content through the ContentTemplate property. TextBlock can only display text strings

Access button

Label components can access control entries by shortcuts

Press and hold the Alt key to appear, the tag is in the control state. When running, press and hold the n to see the focus between different texts.

WPF TextBox and TextBlock

In a WPF application, what are the similarities and differences between the textbox and textblock controls? The answer was posted on StackOverflow.com.

Common to both TextBlocks and TextBoxes:

  • Can be used to display text
  • Can be set to specific Height and Width or be set to Auto so that they grow in size with the text.
  • Can set font size, font type, font styling, to wrap and to range left, right or centred.
  • Can have opacity set and have Pixel Shaders applied.
TextBlock:
  • Used for displaying text more focused typographically.
  • Can contain text set to different colors, fonts and sizes.
  • The line height can also be increased from the default setting to give more space between each line of text.
  • Text inside a TextBlock cannot be made selectable by the user.
TextBox:
  • Used for displaying text more focused for content input or when content is needed to be made selectable by the user.
  • Can only be set to one colour, one font size, one font type etc.
  • Have fixed Line Spacing.
  • Can also be set to a fixed height and width but also have scrollbars switched on to allow content to expand.
Label

The Label is similar to the TextBlock in that you can use it to put read-only text on the screen. Generally, a Label is for short, one-line texts (but may include an image), while the TextBlock works well for multi-line strings, but can only contain text (strings).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *