Установить TextBlock, чтобы сохранить пробел в начале и в конце? - PullRequest
19 голосов
/ 09 мая 2011

РЕДАКТИРОВАТЬ:

Код ниже на самом деле работает, как я хочу - этот вопрос немного вводит в заблуждение.Пожалуйста, игнорируйте это.


Обычно, когда я устанавливаю Text свойство TextBlock, например:

TextBlock tb = new TextBlock();
tb.Text = "     Hello World ";

Пробелы в начале и конце текста не отображаются.Текст, показанный TextBlock, является Hello World.Как я могу установить TextBlock для их отображения (т.е. не удалять пробелы)?Мне не хватает какой-то собственности?

Ответы [ 3 ]

48 голосов
/ 25 августа 2011

В этом случае вам не нужно использовать xml:space="preserve"

<TextBlock xml:space="preserve" Text="     Hello world!    " />

БУДЕТ отображать пробелы, однако

<TextBlock>    Hello world!    </TextBlock>
1007 * * не будет.
8 голосов
/ 14 сентября 2011

Re: «Я просто надеюсь, что вы не используете это для выравнивания текста. Есть много других более изящных способов сделать это».

Похоже, вы можете использовать свойство Padding: http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.padding(VS.85).aspx.

См. Также различные свойства выравнивания и полей.

3 голосов
/ 09 мая 2011

установить свойство xml: space для сохранения в вашем XAML, я предполагаю, что вы используете WPF

<TextBlock xml:space="preserve" Text="     Hello world!    " />

РЕДАКТИРОВАТЬ: иногда в XAML проще делать вещи.Я просто надеюсь, что вы не используете это для выравнивания текста.Для этого есть много других более изящных методов.

...