【发布时间】:2010-05-13 19:28:49
【问题描述】:
我正在尝试在 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>
【问题讨论】: