2013-04-20 12 views
5

Używam mojej aplikacji desktopowej WPF na tablecie ASUS ME400 Intel Atom Z2760. Wszystko działa poprawnie, ale kiedy używam scrollviewera, przewij ruch palcem (abilitate panning mode horizontalOnly) na końcu przewijania palcem, okno przesuwa się i widzisz na pasku zadań przez chwilę. Efekt nie jest widoczny, jeśli przewijam palcem, nie dotarłem, dopóki nie zostanie założony na pasku przewijania.Tablet WPF Aplikacja Windows Desktop - problem z przewijaniem

Jak mogę uniknąć tego ruchu okna? Jak mogę zablokować okna i nie mogę się poruszać po przewinięciu na końcu paska przewijania?

Odpowiedz

6

W obiekcie ScrollViewer, w którym włączono panoramowanie, zarejestruj nowe wydarzenie dla ManipulationBoundaryFeedback.

<ScrollViewer PanningMode="Both" ManipulationBoundaryFeedback="ScrollViewer_ManipulationBoundaryFeedback"> 
    <!-- your content is here... --> 
</ScrollViewer> 

W kodzie, trzeba obsłużyć zdarzenia, ustawiając Handled nieruchomość do true:

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

(przez ustawienie właściwości Handled do true, jesteśmy rzeczywiście powiedzieć, że w przypadku został przez nas obsłużony, więc zatrzymujemy proces bulgotania wiadomości w Visual Tree, zanim dotrze on do Window/Application - w zależności od tego, co spowoduje wstrząsanie.)