我目前正在使用 DotNetBrowser 库开发 Wpf 应用程序。
所以目标是信息亭软件。
我必须使用 BrowserType.HEAVYWEIGHT 类型,因为我们加载了控件的 webapp 只能在这种类型下正常工作。在轻量级模式下,我捕获了触摸事件,但随后在滑动我们的 Web 应用程序时也会触发事件。 回到问题:
<code>
Browser browser = BrowserFactory.Create(BrowserContext.DefaultContext, BrowserType.HEAVYWEIGHT);
m_BrowserView = new WPFBrowserView(browser);
</code>
我确实有两个触摸事件处理程序
<code>
private void OnTouchUp(object sender, TouchEventArgs e)
{
Console.WriteLine("Touch up");
base.OnTouchUp(e);
}</code>
和
<code>
private void OnTouchDown(object sender, TouchEventArgs e)
{
Console.WriteLine("Touch down");
base.OnTouchDown(e);
}
</code>
我在 MainWindow 的构造函数中注册了这两个方法 都没有
<code>
TouchUp += OnTouchUp;
TouchDown += OnTouchDown;
</code>
也不是
<code>
m_BrowserView.TouchUp += OnTouchUp;
m_BrowserView.TouchDown += OnTouchDown;
</code>
强制应用程序进入我的触摸方式
点网浏览器:1.8.4 WPF:4.5.2 操作系统:Windows 10
最佳答案
重量级渲染模式意味着将 native 窗口嵌入到您的应用程序中。因此,所有用户输入首先被该窗口捕获,事件不会在 .NET 应用程序中自动触发。
为在重量级渲染模式下工作的控件实现这些事件,DotNetBrowser 为Chromium 拦截这些事件并通知.NET 端。这已经为 DotNetBrowser 中的鼠标和按键事件完成,但还没有为触摸事件完成。
如果这些事件的存在对您来说很重要——请通过电子邮件联系 DotNetBrowser 支持并请求此功能。实现它不会花费太多时间。
关于c# - 重量级模式下的 dotnetbrowser 触摸事件未传递给 wpf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697558/