2010-03-16 87 views
5

我有一个标签绑定到滑块的值。XAML:如何将百分比符号附加到绑定标签值?

Content="{Binding Path=Value, ElementName=Slider}" 

如何追加百分比符号?滑块的值已正确格式化,所以当值为'50'时,我需要的是'50%'。

我知道如何在代码后面做它,但我希望在不创建转换器的情况下在xaml中完成此操作。 TIA

回答

15

这工作得很好,我(在Kaxaml测试):

<StackPanel> 
    <Slider Minimum="0" Maximum="100" x:Name="slider" /> 
    <TextBlock Text="{Binding Path=Value, ElementName=slider, StringFormat='\{0\}%'}" /> 
</StackPanel> 

没有我得到了一个错误,指出%字符是无效的反斜杠在那个位置。

+0

谢谢丹,在VS试过它,也没有运气。 – Brad 2010-03-16 17:07:45

+0

我将标签更改为一个TextBlock,它工作。我会研究为什么标签不允许格式化。谢谢! – Brad 2010-03-16 17:11:32

1

可以使用的StringFormat像这样

Content="{Binding Path=Value, ElementName=Slider, StringFormat='{0}%'}" 
+0

谢谢克里斯。我已经尝试过(和许多其他配置),没有运气。任何想法可能发生什么? – Brad 2010-03-16 16:50:10

+0

确实如我自己使用过的那样工作......你得到什么错误?实际上打印到屏幕上的是什么? – Chris 2010-03-16 16:52:54

+0

没有错误,它只是显示数字。即。 '50'标签没有设置其他属性。 – Brad 2010-03-16 16:56:47

1

下面是WPF> = 3.5 SP1的解决方案:

<Label Content="{Binding Path=Value, ElementName=Slider}" 
     ContentStringFormat="{0}%" /> 
+0

不应该是'ContentStringFormat =“{} {0}%”'? – 2015-09-16 15:31:40

5

的StringFormat可以以这种形式被使用,以及

Content="{Binding Path=Value, ElementName=Slider, StringFormat=P2}"

3

我也有类似的问题,并通过使用此解决它,基于@ Wiesel的回答:

<Label Content="{Binding Value, ElementName=Slider}" 
     ContentStringFormat="{}{0}%"/>