在WPF中将回车符添加到字符串资源

Bre*_*orn 13 wpf textblock carriage-return

我的应用程序将所有本地化文本存储在字符串资源字典中,如此处所建议的那样http://msdn.microsoft.com/en-us/library/bb295251(VS.85).aspx

        <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">

  <!-- String resource that can be localized -->
  <system:String x:Key="localizedMessage">en-US Message</system:String>

</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在字符串资源中添加新行,并在TextBlock中使用它时正确呈现.

执行此内联工作:

<TextBlock Name="test" Text="Line 1&#13;Line 2"> </TextBlock>
Run Code Online (Sandbox Code Playgroud)

但是,&#13; 在字符串资源中使用不起作用.向字符串资源添加新行的最佳方法是什么?

Ada*_*lls 18

更新:更新的答案 - 更好的选择

XAML解析器根据以下规则对空格进行规范化.

http://msdn.microsoft.com/en-us/library/cc189036(VS.95).aspx#whitespace

要指示您sys:String保留空格,请应用xml:space="preserved它:

<sys:String x:Key="MyLocalizedString" xml:space="preserve">this&#13;&#10;is&#13;&#10;my&#13;&#10;resource</sys:String>
Run Code Online (Sandbox Code Playgroud)


小智 13

在资源视图中输入字符串资源时,可以通过按Shift + Enter来添加CR/LF.它将添加换行符,您将能够看到它.检索资源字符串并将其设置为文本块上的文本将产生再现换行符(或多个换行符)的期望效果.在我的情况下,我想在单个文本块中模拟两个段落.我不喜欢其他方法,因为它需要翻译成另一种语言来处理两个字符串.我想将此视为单个字符串资源,以便翻译者具有他们翻译的完整上下文.