gpt4 book ai didi

c# - 如何防止 WPF 中的 Winforms WebBrowser 上的触摸反馈?

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:32 25 4
gpt4 key购买 nike

我正在使用 <WebBrowser> 的 WinForms 版本在我的 WPF 应用程序中,a la <WindowsFormsHost>因为总的来说它比 Windows.Controls 版本好很多。但是,我遇到了一个与触摸屏有关的问题。

通常我设置 ManipulationBoundaryFeedback控件上的事件处理程序以立即处理事件,从而防止任何边界反馈,我已尝试使用以下代码这样做:

MainWindow.xaml

<WindowsFormsHost IsManipulationEnabled="True" ManipulationBoundaryFeedback="WindowsFormsHost_OnManipulationBoundaryFeedback">
<forms:WebBrowser />
</WindowsFormsHost>

MainWindow.xaml.cs

private void WindowsFormsHost_OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}

在普通的 WPF 控件上,一般来说,这是可行的。我所说的“有效”的意思是,如果你用手指在触摸屏上向上或向下拖动,你不会得到触摸屏的效果intertia;也就是说,一旦您到达边界,它就不会上下移动整个窗口

这是一张图片来说明正在发生的事情:

animated gif of touch screen issue

如您所见,如果我在浏览器中向下拖动,它会拉动整个窗口。我能做些什么来防止这种情况发生?

最佳答案

不确定您是否仍然需要这个答案,但要防止这种不必要的行为,只需继承 WindowsFormsHost 类并覆盖 OnManipulationBoundaryFeedback,如下所示:

public class MyClass : WindowsFormsHost
{

// Override is optional to remove unnecessary behavior
protected override void OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs e)
{
// uncomment this to use base class implementation
//base.OnManipulationBoundaryFeedback(e);
e.Handled = true;
}
}

已编辑

我做了一个小测试并为我的控件添加了这段代码

protected override void OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs e)
{
Debug.WriteLine("OnManipulationBoundaryFeedback");
}

private void MyControl_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
Debug.WriteLine("MyControl_ManipulationBoundaryFeedback");
}

输出如下

OnManipulationBoundaryFeedback

MyControl_ManipulationBoundaryFeedback

OnManipulationBoundaryFeedback

MyControl_ManipulationBoundaryFeedback

OnManipulationBoundaryFeedback

MyControl_ManipulationBoundaryFeedback

OnManipulationBoundaryFeedback

MyControl_ManipulationBoundaryFeedback

因此您可以看到 OnManipulationBoundaryFeedback 首先启动,然后调用 ManipulationBoundaryFeedbackEvent 处理程序

关于c# - 如何防止 WPF 中的 Winforms WebBrowser 上的触摸反馈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40004598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com