我正在尝试在WPF应用程序中创建一个表单,以允许用户使用类似iPhone的手势来滚动浏览可用字段。因此,我将所有表单控件都放置在ScrollViewer内的StackPanel中,当屏幕上要显示的元素过多时,滚动条会按预期显示。
然而,当我尝试在我的支持触摸的设备上测试这一功能时,平移手势(在表面上放下一个手指并向上拖动)并没有像我期望的那样将可视区域向下移动。
当我只是将一些元素放在ListView内时,触摸手势可以正常工作。是否有任何方法在ScrollViewer中启用同样的行为?
我的窗口结构如下:
<Window x:Class="TestTouchScrolling.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<ScrollViewer Name="viewer" VerticalScrollBarVisibility="Auto">
<StackPanel Name="panel">
<StackPanel Orientation="Horizontal">
<Label>Label 1:</Label>
<TextBox Name="TextBox1"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Label 2:</Label>
<TextBox Name="TextBox2"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Label 3:</Label>
<TextBox Name="TextBox3"></TextBox>
</StackPanel>
<!-- Lots more like these -->
</StackPanel>
</ScrollViewer>
</Grid>