scobi
scobi

Reputation: 14558

How to automatically get hotkey on a WPF tooltip?

In my window, I have this:

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

And down in the tree, I have this:

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

I don't like the redundancy, and I don't like copy pasting my hotkey's "Ctrl+Left" into the tooltip. I'm 99% certain WPF has a better way of doing it than this.

Could someone point me in the right direction?

Upvotes: 0

Views: 526

Answers (1)

Jake Berger
Jake Berger

Reputation: 5377

Could someone point me in the right direction?

Option 1: I would try using a custom Attached Property maybe "IsToolTipGesture". In the PropertyChangedCallback, check if there's a ToolTip and any UIElement.InputBindings. If there are, update the ToolTip with the appropriate information from the InputBindings.

Option 2: Another thing to try if you want this behavior on ALL elements below a certain root is using a similar approach with an attached property and recursively checking child elements (via VisualTreeHelper) to see if they have a ToolTip and any InputBindings.

Upvotes: 1

Related Questions