资源有一些标记(
是\ r \ n的模拟)
<Application.Resources>
<system:String x:Key="key1">Line1
Line2</system:String>
</Application.Resources>
和主窗口:
<Grid>
<TextBlock Text="{DynamicResource key1}"/>
<Grid>
但结果只有一行:“Line1 Line2”。有什么问题?
答案 0 :(得分:4)
只需在您的字符串资源中设置xml:space="preserve"
,就可以按预期工作 -
<system:String xml:space="preserve" x:Key="key1">Line1
Line2</system:String>
答案 1 :(得分:1)
TextBlock
在使用Text属性时忽略空格。添加换行符的唯一方法是使用Inlines属性。虽然这是一个无法直接设置的只读属性,但它也是TextBlock
的内容属性,因此可以这样设置:
<TextBlock>
<StaticResource ResourceKey="key1" />
</TextBlock>
但是,您将无法使用DynamicResource
,因为Inlines不是依赖属性。
此外,要以XML格式保留空格,您需要将xml:space="preserve"
添加到字符串中(xml
是预定义的命名空间,无需声明它):
<system:String xml:space="preserve" x:Key="key1">Line1
Line2</system:String>