在Shift上双击显示对话框

时间:2013-04-24 20:41:40

标签: wpf dialog command mouseevent routed-commands

我的WPF应用程序中有一个TextBlock控件。当用户按住shift键并右键双击它时,我想显示一个“复活节彩蛋”。

我在我的应用程序中为静态类添加了RoutedUiCommand,我已经定义了所有命令。我为我的新命令添加了一个命令绑定:

<UserControl.CommandBindings>
    <CommandBinding CanExecute="ShowDiagnostics_CanExecute" Command="cs:CarSystemCommands.ShowDiagnostics"  Executed="ShowDiagnostics_Executed" />
</UserControl.CommandBindings>

当我创建RoutedUiCommand时,我指定MouseGesture RightDoubleClick ModifierKey Shift。到现在为止还挺好。

如何将命令与TextBlock相关联?

3 个答案:

答案 0 :(得分:2)

您可以使用InputBindings和MouseBinding 这里描述:http://thejoyofcode.com/Invoking_a_Command_on_a_Double_Click_or_other_Mouse_Gesture.aspx

答案 1 :(得分:1)

如何在调用命令的文本块上放置InputBinding

答案 2 :(得分:0)

我最终做的是将CommandBindingUserControl.Resources移到TextBlock

<TextBlock ...>
    <TextBlock.CommandBindings>
        <CommandBinding CanExecute="ShowDiagnostics_CanExecute" Command="cs:CarSystemCommands.ShowDiagnostics"  Executed="ShowDiagnostics_Executed" />
    </TextBlock.CommandBindings>
</TextBlock>

现在,直到你按下shift键并且没有任何反应。右键双击TextBlock

我给出了其他答案,因为他们也会工作。