将工具提示文本绑定到控件内容的最佳方式

本文关键字:最佳 方式 控件 工具提示 文本 绑定 | 更新日期: 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。然而,拥有一个简单地重复已经显示的标签的工具提示,往好了说似乎毫无意义,往坏了说似乎很烦人。