我正在开发一个科学应用程序,需要渲染这样的字符串: -
结果:350cps / ppb
数字部分(350)和测量单位(" ppb")都是绑定属性,而"结果"和" cps"是本地化字符串。 (另请注意,"结果"资源字符串不包含":",因此我可以在其他地方重复使用该字词。)
我使用以下XAML输出这样的字符串: -
<TextBlock>
<TextBlock Text="{x:Static ar:AppResources.Result}" />
:
<TextBlock Text="{Binding Measurement}" />
<TextBlock Text="{x:Static ar:AppResources.Counts_per_second_abbrev}" />
/
<TextBlock Text="{Binding UnitOfMeasure.Name}" />
</TextBlock>
但是这种方法的问题是在每个元素之间插入一个空格,因为它们位于不同的行上,结果是这样的:
结果:350 cps / ppb
为了正确格式化我可以使用以下内容,但它不是非常易读(&#34;:&#34;&#34; /&#34;很容易错过) : -
<TextBlock>
<TextBlock Text="{x:Static ar:AppResources.Result}" />:
<TextBlock Text="{Binding Measurement}" /><TextBlock Text="{x:Static ar:AppResources.Counts_per_second_abbrev}" />/<TextBlock Text="{Binding UnitOfMeasure.Name}" />
</TextBlock>
我想我可以使用几个水平的StackPanel,但是有一个&#34;正确的&#34;在没有添加空格的情况下连接文本的方法?
答案 0 :(得分:2)
没关系,我发现了这个(我没有说过我可以在MultiBinding中使用静态): -
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}: {1}{2}/{3}">
<Binding Source="{x:Static ar:AppResources.Result}" />
<Binding Path="Measurement" />
<Binding Source="{x:Static ar:AppResources.Counts_per_second_abbrev}" />
<Binding Path="UnitOfMeasure.Name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>