将工具提示文本绑定到控件内容的最佳方法是什么?

时间:2014-11-03 16:45:52

标签: c# wpf xaml

因此,我将工具提示添加到WPF表单,基本上工具提示只需要匹配内容。但是,我在某些控件中有_,因此可以使用ALT +< key>选择它们。我当然不希望_包含在工具提示文本中。

另外,我不希望第三次为ElementName=写出控件的名称。这就是我目前所拥有的:

<CheckBox x:Uid="chkProcess" Name="chkProcess" ToolTip="{Binding ElementName=chkProcess, Path=Content}">_Process widgets</CheckBox>

我还有第二种方法可行,但并不是那么漂亮。它基本上附加到TollTipOpening事件并动态更改工具提示值以匹配内容并正确剥离_个字符。

是否有一种干净的方法可以通过数据绑定剥离_或更好的方法来执行此操作?

2 个答案:

答案 0 :(得分:2)

你可以试试这个:在工具提示中使用不会显示的标签&#34; _&#34;

<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>

答案 1 :(得分:1)

您可以将ElementName=chkProcess替换为RelativeSource={RelativeSource Self}。虽然它更详细,但它也可能允许您删除Name属性。

如果您要删除_个字符,可以创建一个简单的IValueConverter来执行该任务,并在工具提示Converter上指定Binding。然而,拥有一个简单地反刍已经显示的标签的工具提示充其量只是毫无意义,而且最坏的情况也很烦人。