我怎样才能得到;点击";当我使用Expression Blend交互性程序集中的EventTrigger时,是否使用我的WPF按钮处理事件?
我正在尝试使用一个命令,该命令在我的视图模型中定义,带有xmlns中定义的EventTriggers:I=”http://schemas.microsoft.com/expression/2010/interactivity" 我已将控件从Microsoft.Surface.Presentation.Controls.SurfaceSlider派生的控件更改为常规WPF按钮。使用该按钮,如果我使用EventName=“MouseEnter”,则会触发相同的ConfirmOrderCommand,但如果我使用EventName=“Click”,则不会发生任何事情。按钮的XAML在这里我怎样才能得到;点击";当我使用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,
<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。预览允许容器首先捕获事件。我可以用鼠标完成此操作。输入,但不是按钮。单击。我的回答描述了为什么会这样。谢谢分享。我也有同样的问题。我不知道应该把上面解释的代码片段放在哪里。你能告诉我更多的细节吗?谢谢