wpf -使用字符串文字在标签上绑定字符串格式

fv2wmkja  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(202)

我已经绑定了一个滑块控件的工具提示到它的Value属性,我试图使用StringFormat使它显示“当前值{0},共10”,其中{0}是Value属性。下面是我在试图弄清楚这一点时尝试的各种事情之一。

<Slider.ToolTip>
  <Label>
    <Label.Content>
      <Binding StringFormat="Current Value {0} of 10"
               ElementName="DebugLevelSlider"
               Path="Value" />
    </Label.Content>
  </Label>
</Slider.ToolTip>

我在网上找不到如何使用stringformat和字符串文字的例子,比如上面我的例子。我看到了很多stringformat日期/时间/货币格式转换。我想我有一种方法可以用多绑定来做到这一点,但它看起来像是一个额外的工作量。我希望对于字符串文字格式,我仍然不必编写一个自定义转换器。
在我的应用程序中,我发现自己在项目旁边使用了很多额外的标签,所以了解字符串格式将有望让我消除一些不必要的标签。

oaxa6hgo

oaxa6hgo1#

Label.Content是object,所以不能在这里使用Binding.StringFormat,因为绑定的目标类型必须是string才能工作。
两种解决方法是:
1.使用TextBlock代替Label并绑定Text属性。
1.使用Label.ContentStringFormat,即

<Label ContentStringFormat="Current Value {0} of 10" Content={Binding ...} />

如果第一个字符是{,则只需要使用{}转义string

0s7z1bwu

0s7z1bwu2#

对于工具提示,可以检出WPF binding with StringFormat doesn't work on ToolTips
对于上面指定的StringFormat,您必须转义字符串。

StringFormat="{}Current Value {0} of 10"

下面是一些StringFormat的例子。http://blogs.msdn.com/b/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx

相关问题