2017-01-17 5 views
3

В настоящее время я разрабатываю и Wpf-приложение с библиотекой DotNetBrowser.события касания dotnetbrowser в тяжелом режиме не передаются в wpf

Таким образом, цель - программное обеспечение киоска.

Мне нужно использовать тип BrowserType.HEAVYWEIGHT, потому что наш webapp, который загружен с помощью элемента управления, работает корректно с этим типом. В облегченном режиме я захватываю события касания, но затем также запускаются события, когда вы swyping наш webapp. Но вернемся к проблеме:

<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> 

заставил приложение ввести свои сенсорные методы

DotNetBrowser: 1.8.4 WPF: 4.5.2 ОС: Windows 10

ответ

2

Режим тяжеловес рендеринга предполагает встраивание собственное окно в ваше приложение. В результате все входные данные пользователя сначала захватываются этим окном, и события не запускаются в приложении .NET автоматически.

Чтобы реализовать эти события для элементов управления, работающих в режиме тяжелого рендеринга, DotNetBrowser перехватывает эти события для Chromium и уведомляет сторону .NET. Это уже сделано для событий мыши и ключа в DotNetBrowser, но не для событий касания.

Если присутствие этих событий имеет решающее значение для вас - обратитесь в службу поддержки DotNetBrowser по электронной почте и запросите эту функцию. Это не займет много времени для его реализации.

+0

спасибо, я недавно связался с поддержкой, посмотрим, что получится – DotNetDev

+1

Эта функция была реализована и присутствует в DotNetBrowser 1.9: http://dotnetbrowser-support.teamdev.com/samples/listening-to-touch-gesture-events –

-1

Эта функция была реализована и присутствует в DotNetBrowser 1.9: https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000112125-listening-to-touch-gesture-events

+0

Пожалуйста, не оставляйте ссылки только на ответы. ссылки подвержены связыванию гниения при перемещении или удалении ссылки. Пожалуйста, добавьте полный код и решение в свой ответ – Tschallacka

+1

@Tschallacka благодарит за информацию. –

1

Я решил с помощью этого подхода, как трубопровод для longtap является LONG_PRESS, TAP_CANCEL, LONG_TAP

browser.GestureEvent += (sender, args) => 
      { 
       m_Gesture.Add(args.GestureType); 
       if (args.GestureType == GestureType.LONG_PRESS) 
       { 
        //// prepare the main action 
       } 

       if (args.GestureType == GestureType.LONG_TAP) 
       { 
        ////do the main action; 
       } 
      }