- 開啓觸屏滾動 ScrollViewer在鼠標模式下可以通過鼠標滾輪或者操作滾動條進行內容滾動,如果需要在觸屏下能通過手指直接划動內容則需要一些設置:
- 設置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
- 設置了PanningMode值後,在滾動到底或者頂的時候會出現在窗口抖動的情況,這時如果產品說不能抖時,需要在窗體下的第一層容器增加
ManipulationBoundaryFeedback
事件的訂閱:
<Window ...>
<Grid ManipulationBoundaryFeedback="OnManipulationBoundaryFeedback">
<ScrollViewer PanningMode=VerticalOnly....>
....
</ScrollViewer>
</Grid>
</Window>
//.cs文件
private void OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
- 還有其它相關的設置如:PanningRatio、PanningDeceleration等參考ScrollViewer