C# 鼠标右键的WPF按钮命令?

C# 鼠标右键的WPF按钮命令?,c#,wpf,mvvm,command,C#,Wpf,Mvvm,Command,我正在学习WPF中的MVVM和命令。我有几个按钮,我想触发类似的命令,这取决于是否使用鼠标左键或右键单击按钮 到目前为止,我一直使用事件处理程序,通过检查MouseButtonEventArgs可以确定按下了哪个鼠标按钮 <Button Content="Command Test" PreviewMouseDown="Button_PreviewMouseDown"/> 但是如果我使用命令,我看不到任何类似的东西 如何为按钮设置不同的命令?单击鼠标左键时执行一个命令,单击鼠标右键时

我正在学习WPF中的MVVM和命令。我有几个按钮,我想触发类似的命令,这取决于是否使用鼠标左键或右键单击按钮

到目前为止,我一直使用事件处理程序,通过检查MouseButtonEventArgs可以确定按下了哪个鼠标按钮

<Button Content="Command Test" PreviewMouseDown="Button_PreviewMouseDown"/>
但是如果我使用命令,我看不到任何类似的东西

如何为按钮设置不同的命令?单击鼠标左键时执行一个命令,单击鼠标右键时执行另一个命令

<Button Content="Command Test" Command="{Binding PressLetterCommand, Mode=OneWay}"/>

当前,该命令仅在单击鼠标左键时激发。如果该命令也会被激发,如果鼠标右键被点击,我可以找出哪个按钮被点击,这也将是一个解决方案

我搜索了一下,找到了这个使用Decorator的问题和答案。我试过了,但据我所知,这对我的按钮不起作用

有什么建议吗?

试试这个

<Button Content="Command Test">
    <Button.InputBindings>
        <MouseBinding Gesture="RightClick" Command="{Binding PressLetterCommand}" />
    </Button.InputBindings>
</Button>


无论按钮是鼠标左键还是右键,或是键盘(如果有焦点),都会单击按钮。这就是为什么它有一个单击事件和一个命令。不要更改此行为。更改按钮的标准行为有什么好处?你看到了多少应用程序,它们在鼠标右键点击按钮时有一些行为?@Clemens:我使用从A到Z的字母按钮,让用户在通常只与鼠标一起使用的表单上输入一些文本。如果单击鼠标左键,则字母为大写,右键为小写。这可能并不完美,但我更喜欢它,而不是一个额外的移位按钮或26个小写字符按钮。谢谢,这很好用。我花了一个小时尝试这个和那个,然后在10分钟内得到了关于StackOverflow的答案。精彩的!
<Button Content="Command Test">
    <Button.InputBindings>
        <MouseBinding Gesture="RightClick" Command="{Binding PressLetterCommand}" />
    </Button.InputBindings>
</Button>