将工具提示文本绑定到控件内容的最佳方式
本文关键字:最佳 方式 控件 工具提示 文本 绑定 | 更新日期: 2023-09-27 18:29:08
因此,我将向WPF表单添加工具提示,基本上工具提示只需要与内容匹配即可。然而,我在一些控件中有_
,因此可以使用ALT+<键>。我当然不希望_包含在工具提示文本中。
此外,我希望不必为ElementName=
第三次写出控件的名称。这就是我目前拥有的:
<CheckBox x:Uid="chkProcess" Name="chkProcess" ToolTip="{Binding ElementName=chkProcess, Path=Content}">_Process widgets</CheckBox>
我还有第二种方法,它有效,但不那么漂亮。它基本上附加到TollTipOpening事件,并动态更改工具提示值,以通过适当剥离_
字符来匹配内容。
有没有一种干净的方法可以通过数据绑定剥离_,或者有一种更好的方法来实现这一点?
你可以试试这个:在工具提示中使用不会显示"_"的标签
<CheckBox x:Uid="chkProcess" Name="chkProcess">_Process widgets
<CheckBox.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
<Label Content="{Binding Content}"/>
</ToolTip>
</CheckBox.ToolTip>
</CheckBox>
您可以用RelativeSource={RelativeSource Self}
替换ElementName=chkProcess
。虽然它更详细,但它可能还允许您删除Name
属性。
如果要去掉_
字符,可以创建一个简单的IValueConverter
来执行该任务,并在工具提示Binding
上指定Converter
。然而,拥有一个简单地重复已经显示的标签的工具提示,往好了说似乎毫无意义,往坏了说似乎很烦人。