использование табуляции и символа возврата каретки в словаре ресурсов WPF

Как я могу использовать символы табуляции и возврата каретки в словаре ресурсов WPF XAML?

У меня это не работает:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:system="clr-namespace:System;assembly=mscorlib"
                >

<system:String x:Key="test_Key">Tab doesnt work\tTest\rTest</system:String>
</ResourceDictionary>

когда я получаю это через FindResource ("test_key"), символы табуляции и возврата каретки удаляются.


person AliRezza    schedule 20.10.2011    source источник


Ответы (2)


Парсер XAML использует нормализацию пробелов (согласно MSDN), если вы хотите избежать этого, добавьте xml:space="preserve" в свой XML как таковой:

<system:String x:Key="test_Key" xml:space="preserve">Tab doesnt work&#x09;Test&#x0d;Test</system:String>
person Johannes Kommer    schedule 20.10.2011
comment
\t и тому подобное никогда не преобразуются в специальные символы, если вы используете опцию сохранения, вы должны фактически написать табуляцию и возврат каретки. - person H.B.; 20.10.2011
comment
Упс, забыл переключить символы на закодированные. - person Johannes Kommer; 20.10.2011

Добавьте новую строку так &#x0d;&#x0a; и табуляцию с &#x09;

Однако это не сработает, если вы не отключили нормализацию пробелов, как предлагает Дж. Коммер.

person Muhammad Hasan Khan    schedule 20.10.2011
comment
Кажется, у вас неправильный порядок, это возврат каретки, за которым следует перевод строки. (И вопрос был про возврат каретки, а не новую строку) - person H.B.; 20.10.2011
comment
@ H.B. Возврат каретки - \ r = 13 = # x0d, а новая строка - \ r \ n, так что мой порядок правильный. - person Muhammad Hasan Khan; 20.10.2011