WPF-ScrollViewer之觸屏滾動

  1. 開啓觸屏滾動 ScrollViewer在鼠標模式下可以通過鼠標滾輪或者操作滾動條進行內容滾動,如果需要在觸屏下能通過手指直接划動內容則需要一些設置:
    1. 設置PanningMode的值
//PanningMode的值包含:
// 摘要:
//     System.Windows.Controls.ScrollViewer 沒有響應觸摸屏輸入。
None = 0,
//
// 摘要:
//     System.Windows.Controls.ScrollViewer 僅水平滾動。
HorizontalOnly = 1,
//
// 摘要:
//     System.Windows.Controls.ScrollViewer 僅垂直滾動。
VerticalOnly = 2,
//
// 摘要:
//     System.Windows.Controls.ScrollViewer 水平和垂直滾動。
Both = 3,
//
// 摘要:
//     System.Windows.Controls.ScrollViewer 執行滾動操作使得用戶移動手指時首先水平。 如果用戶移垂直第一,移動將被視爲鼠標事件。
//     之後 System.Windows.Controls.ScrollViewer 開始向下滾動,它將水平和垂直滾動。
HorizontalFirst = 4,
//
// 摘要:
//     System.Windows.Controls.ScrollViewer 執行滾動操作使得用戶移動手指時先垂直。 如果用戶移首先水平,移動將被視爲鼠標事件。
//     之後 System.Windows.Controls.ScrollViewer 開始向下滾動,它將水平和垂直滾動。
VerticalFirst = 5
  1. 設置了PanningMode值後,在滾動到底或者頂的時候會出現在窗口抖動的情況,這時如果產品說不能抖時,需要在窗體下的第一層容器增加ManipulationBoundaryFeedback事件的訂閱:
<Window ...>
	<Grid ManipulationBoundaryFeedback="OnManipulationBoundaryFeedback">
		<ScrollViewer PanningMode=VerticalOnly....>
			....
		</ScrollViewer>
	</Grid>
</Window>

//.cs文件
private void OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
    e.Handled  = true;
}
  1. 還有其它相關的設置如:PanningRatio、PanningDeceleration等參考ScrollViewer
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章