如何在WPF工具提示上自动获取热键?

时间:2011-11-16 17:46:19

标签: wpf

在我的窗口中,我有这个:

<UIElement.InputBindings>
    <KeyBinding Gesture="Ctrl+Left" Command="{Binding MoveTaskCommand}" CommandParameter="{x:Static plugin:MoveDirection.Left}"/>
    ...

在树上,我有这个:

<Button HorizontalAlignment="Left"
    ToolTip="Promote to Parent Level (Ctrl+Left)" Command="{Binding MoveTaskCommand}"
    CommandParameter="{x:Static plugin:MoveDirection.Left}">
    ...

我不喜欢冗余,我不喜欢将热键的“Ctrl + Left”复制粘贴到工具提示中。我99%确定WPF有更好的方法来做到这一点。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

  

有人能指出我正确的方向吗?

选项1 :我会尝试使用custom Attached Property“IsToolTipGesture”。在PropertyChangedCallback中,检查是否有ToolTip和任何UIElement.InputBindings。如果有,请使用InputBindings中的相应信息更新ToolTip。

选项2 :如果您希望在某个根目录下的所有元素上执行此操作,则尝试使用附加属性的类似方法并递归检查子元素(通过VisualTreeHelper )看看他们是否有工具提示和任何InputBindings。