2017-01-06 5 views
1

Так в МОФ XAML вы можете написать что-то вроде этого:В чем разница между текстом в текстовом поле и текст вне текстового поля

<TextBlock Text="Light"/> 

Но я вижу, что некоторые люди пишут так:

<TextBlock>Light</TextBlock> 

Есть ли разница? Почему мы можем писать двумя способами? Есть ли преимущества в производительности? Переносимость?

Спасибо!

ответ

1

Почему мы можем писать двумя способами?

можно поместить содержимое внутри элемента для вас, чтобы иметь возможность добавлять Внутристрочные к TextBlock:

<TextBlock> 
    <Run>Light</Run> 
    <LineBreak /> 
    <Run FontWeight="Bold">Bold</Run> 
</TextBlock> 

Однако, если вы только добавить строку в качестве внутреннего текста элемента TextBlock (<TextBlock>Light</TextBlock>), синтаксический анализатор XAML просто установит свойство Text для TextBlock для этой строки вместо создания Inline и добавления его в коллекцию Inlines TextBlock.

Таким образом, нет никакого различия в результате, оба синтаксиса установят свойство Text TextBlock в Text.

Есть ли прирост производительности?

Нет. Это просто два разных способа сделать одно и то же, в основном, то есть установить свойство Text в блоке TextBlock.

Разметка XAML представления - это просто длинная строка на основе XML, которая скомпилируется в BAML при создании вашего приложения. Затем среда выполнения WPF анализирует маркеры BAML и создает соответствующие элементы пользовательского интерфейса и задает их свойства при запуске приложения. То, как вы установили свойство Text для TextBlock в вашей разметке, не имеет большого значения во время выполнения.

-1

Оба они одинаковы, если вы использовали обычную или статическую (hart-кодированную) строку, такую ​​как ваш пример. первая - полная форма, вторая - выстрел. В противном случае, если вы хотите использовать динамическое значение, то лучший способ для первого с помощью привязки. Если вы хотите использовать специальные символы, такие как '&', тогда второй вариант - лучший способ.

-1

Первый вариант - это короткая форма второй. Если вы используете короткий текст (1-2 слова), используйте первый вариант. Это позволяет повысить удобочитаемость. Для более длинных текстов предпочтительнее второй вариант.

0

Большая разница, которую я вижу, заключается в том, что первый вариант позволяет вам привязываться к чему-то. Ваш текст может поступать из разных мест, например, другой элемент управления, модель просмотра и т. Д.