Wpf 操纵事件使按钮停止工作
我正在一个没有触摸功能的工作站上开发触摸应用程序。我已经在应用程序中设置了向前和向后滑动操作。问题是,现在按钮不会点击。有没有一种方法可以在页面级别进行操作,并且仍然可以正确执行按钮命令Wpf 操纵事件使按钮停止工作,wpf,touch,Wpf,Touch,我正在一个没有触摸功能的工作站上开发触摸应用程序。我已经在应用程序中设置了向前和向后滑动操作。问题是,现在按钮不会点击。有没有一种方法可以在页面级别进行操作,并且仍然可以正确执行按钮命令 private void OnElementManipulationStarting(object sender, ManipulationStartingEventArgs e) { e.ManipulationContainer = (sender as FrameworkE
private void OnElementManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
e.ManipulationContainer = (sender as FrameworkElement);
}
有点复杂。看起来,当操纵被激活时,按钮接收触地事件,但当操纵窃取触地设备时,触地不会在按钮上触发 我找到的解决方案是在按钮控件上附加一个特定的行为,该行为将在操作开始之前捕获设备:
public class ForceCaptureBehavior: Behavior<FrameworkElement>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.TouchDown += OnTouchDown;
}
void OnTouchDown(object sender, TouchEventArgs e)
{
e.TouchDevice.Capture(AssociatedObject);
e.Handled = true;
}
}
公共类ForceCaptureBehavior:行为
{
受保护的覆盖无效附加()
{
base.onatached();
AssociatedObject.TouchDown+=OnTouchDown;
}
void OnTouchDown(对象发送方,TouchEventArgs e)
{
e、 TouchDevice.Capture(关联对象);
e、 已处理=正确;
}
}
现在,您的按钮将如下所示:
<s:SurfaceButton Content="Click!" Width="200" Height="150" Click="Button_Click">
<i:Interaction.Behaviors>
<local:ForceCaptureBehavior/>
</i:Interaction.Behaviors>
</s:SurfaceButton>
您需要将Windows.System.Interactive和Microsoft.Expression.Interactions程序集添加到项目中。是否可以发布一些代码。如何捕获触摸事件?WPF操纵事件。我正在使用操纵开始、操纵增量和操纵完成。我正在寻找一种解决方案,不必用行为装饰每个UI控件。在本例中,将操纵事件处理程序附加到UI背景中的元素,而不是其continer。