WPF 与 StringFormat 的绑定(bind)不适用于工具提示

标签 wpf binding

以下代码有一个简单的绑定(bind),它使用完全相同的绑定(bind)表示法将名为 MyTextBlock 的 TextBlock 的文本绑定(bind)到 TextBox 的 Text 和 ToolTip 属性:

<StackPanel>
    <TextBlock x:Name="MyTextBlock">Foo Bar</TextBlock>
    <TextBox    Text="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}"
             ToolTip="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}" />
</StackPanel>

绑定(bind)还使用 StringFormat property introduced with .NET 3.5 SP1对于上面的 Text 属性来说工作正常,但是对于 ToolTip 来说似乎被破坏了。预期结果是“It is: Foo Bar”,但是当您将鼠标悬停在文本框上时,工具提示仅显示绑定(bind)值,而不显示字符串格式的值。有什么想法吗?

最佳答案

WPF 中的工具提示可以包含任何内容,而不仅仅是文本,因此当您只需要文本时,它们提供了 ContentStringFormat 属性。据我所知,您需要使用扩展语法:

<TextBox ...>
  <TextBox.ToolTip>
    <ToolTip 
      Content="{Binding ElementName=myTextBlock,Path=Text}"
      ContentStringFormat="{}It is: {0}"
      />
  </TextBox.ToolTip>
</TextBox>

我不能 100% 确定使用来自此类嵌套属性的 ElementName 语法进行绑定(bind)的有效性,但 ContentStringFormat 属性正是您所寻找的。

关于WPF 与 StringFormat 的绑定(bind)不适用于工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/197095/

相关文章:

c# - 将 XAML 中的标签文本设置为字符串常量

wpf - WPF-组合框不在 ListView 中呈现(仅第一个)

wpf - Web Guy 的 XAML 布局资源

java - 绑定(bind)抛出异常

backbone.js - Marionette.View 中 UI 元素的可用性

java - 绑定(bind) BorderPane 和框架高度和宽度

Jquery 绑定(bind)问题

wpf - 您如何确保 WPF 从内存中释放大型 BitmapSource?

c# - 如何在我的工具箱下找到图表控件?

c# - 如何在自定义 wpf 控件上绑定(bind)数据网格列的可见性?