Ответы с форумов MSDN

Событие OnPointerMove в UWP

Date: 04.08.2018 16:01:50

Можно попробовать через VisualTreeHelper влезть внутрь AdControl, посмотреть что там. Скорее всего, там WebView. Соответственно, в нем уже подписаться на события мыши (видимо, через JS).

Message 403

Date: 05.08.2018 8:23:27

А они реально срабатывают? Если да, то можно просто вычислить смещение и вручную прокрутить родительский контейнер на нужное расстояние.

Message 402

Date: 07.08.2018 3:36:52

В псевдокоде (по аналогии с WPF) как-то так:

bool pressed = false;
double x, y;
bool xy_defined = false;

private void OnPointerDown(object sender, PointerDownEventArgs e)
{
    pressed = true;
}

private void OnPointerUp(object sender, PointerUpEventArgs e)
{
    pressed = false;
}

private void OnPointerMove(object sender, PointerMoveEventArgs e)
{
            if (pressed)
            {
                var parent = VisualTreeHelper.GetParent((DependencyObject)sender);
                ScrollContentPresenter scp = (ScrollContentPresenter)(parent);
                ScrollViewer sv = scp.ScrollOwner;

                if (!xy_defined)
                {
                    x = e.PointerPosition.X;
                    y = e.PointerPosition.Y;
                    xy_defined = true;
                    return;
                }

                double dx = e.PointerPosition.X - x;
                double dy = e.PointerPosition.Y - y;
                

                sv.ScrollToHorizontalOffset(sv.HorizontalOffset - dx);
                sv.ScrollToVerticalOffset(sv.VerticalOffset - dy);

                x += dx;
                y += dy;
            }
            else xy_defined = false;
}


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub