【发布时间】:2019-08-15 18:03:05
【问题描述】:
我需要将字符串资源中的两个字符串连接成一个标签。 我想要这样的东西
<Label Content="{StaticResource Menu + " " + Name}"></Label>
我该怎么做? 任何帮助表示赞赏。
【问题讨论】:
-
与任何字符串属性一起使用的 Ash 的答案的替代方法是使用
MultiBinding和StringFormat。
我需要将字符串资源中的两个字符串连接成一个标签。 我想要这样的东西
<Label Content="{StaticResource Menu + " " + Name}"></Label>
我该怎么做? 任何帮助表示赞赏。
【问题讨论】:
MultiBinding 和 StringFormat。
当 Content 是 string 时,框架会在后台创建一个 TextBlock 来显示它。所以
<Label Content="Smth"/>
变成了
<Label>
<TextBlock Text="Smth"/>
</Label>
您可以在 xaml 中添加 TextBlock 并从资源中显式分配两个字符串:
<Label>
<TextBlock>
<Run Text="{StaticResource Menu}"/>
<Run Text="{StaticResource Name}"/>
</TextBlock>
</Label>
【讨论】:
TextBlock 不在工具箱中。 Another answer 建议使用 FormattedString 和 Spans 而不是 TextBlock 和 Runs 但属性 (ClassId) 我正在尝试使用它说 Property 'ClassId' 确实不支持“FormattedString”类型的值