c# - 重量级模式下的 dotnetbrowser 触摸事件未传递给 wpf

标签 c# wpf touch dotnetbrowser

我目前正在使用 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/

相关文章:

c# - linq to sql c# : SubmitChanges() not updating the database

c# - 使用 C# 直接从硬件获取声音

c# - 如何检查文本框中的最后一行是否只有一个单词?

c# - Windows 8 中的 WPF 触摸桌面应用程序

javascript - 触摸 MapBox 滚动页面

c# - 如何将 HttpResponseMessage 内容读取为文本

c# - 反射是 C# 中系统命名空间内的嵌套命名空间吗?

c# - WindowsFormsHost 中的 MouseWheel 事件

.net - 响应式框架 ASP.NET MVC

linux - 如何在 Linux 中从文件名更改文件的时间戳?