我怎样才能得到;点击";当我使用Expression Blend交互性程序集中的EventTrigger时,是否使用我的WPF按钮处理事件?

我怎样才能得到;点击";当我使用Expression Blend交互性程序集中的EventTrigger时,是否使用我的WPF按钮处理事件?,wpf,xaml,command,Wpf,Xaml,Command,我正在尝试使用一个命令,该命令在我的视图模型中定义,带有xmlns中定义的EventTriggers:I=”http://schemas.microsoft.com/expression/2010/interactivity" 我已将控件从Microsoft.Surface.Presentation.Controls.SurfaceSlider派生的控件更改为常规WPF按钮。使用该按钮,如果我使用EventName=“MouseEnter”,则会触发相同的ConfirmOrderCommand,

我正在尝试使用一个命令,该命令在我的视图模型中定义,带有xmlns中定义的EventTriggers:I=”http://schemas.microsoft.com/expression/2010/interactivity"

我已将控件从Microsoft.Surface.Presentation.Controls.SurfaceSlider派生的控件更改为常规WPF按钮。使用该按钮,如果我使用EventName=“MouseEnter”,则会触发相同的ConfirmOrderCommand,但如果我使用EventName=“Click”,则不会发生任何事情。按钮的XAML在这里

<Button Name="ConfirmButton"
          IsEnabled="{Binding IsEnabled}"
          Style="{StaticResource  ConfirmButtonStyle}"
          >
    <i:Interaction.Triggers>
      <i:EventTrigger EventName="Click">
        <i:InvokeCommandAction Command="{Binding ConfirmOrderCommand}"/>
      </i:EventTrigger>
    </i:Interaction.Triggers>
  </Button>


我希望用户能够单击按钮来启动命令。我可以让单击事件为按钮工作,还是需要查找其他事件?我也无法让MouseLeftButtonUp正常工作。

试试EventName=“Button.Click”。无论如何,您可以只设置按钮本身的Command属性,然后删除Interaction.Triggers部分。

按钮“单击”不起作用的实际原因是在经历了很多痛苦之后确定的,最后在早上醒来后询问了项目中的某个人

我们的应用程序利用FrameworkElement预览委托窃取了几乎所有的按钮事件

public static void RegisterEvents(FrameworkElement parent)
{
    parent.PreviewMouseDown += MouseDown;
    parent.PreviewMouseUp += MouseUp;
    // even more of these
}

然后,代表们会使用System.Window.Input.TouchDevice来报告鼠标按下等情况。一直以来,我都以为我不知道标准WPF按钮通常是如何工作的。我猜这个故事的寓意是事件不必从子控件开始,然后传播到它们的容器,直到Handled=true。预览允许容器首先捕获事件。

我可以用鼠标完成此操作。输入,但不是按钮。单击。我的回答描述了为什么会这样。谢谢分享。我也有同样的问题。我不知道应该把上面解释的代码片段放在哪里。你能告诉我更多的细节吗?谢谢