在我的窗口中,我有这个:
<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有更好的方法来做到这一点。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
有人能指出我正确的方向吗?
选项1 :我会尝试使用custom Attached Property“IsToolTipGesture”。在PropertyChangedCallback中,检查是否有ToolTip和任何UIElement.InputBindings。如果有,请使用InputBindings中的相应信息更新ToolTip。
选项2 :如果您希望在某个根目录下的所有元素上执行此操作,则尝试使用附加属性的类似方法并递归检查子元素(通过VisualTreeHelper )看看他们是否有工具提示和任何InputBindings。