Я пытаюсь создать форму в приложении WPF, которое позволит пользователю использовать подобные iPhone жесты для просмотра доступных полей. Так, я поместил все свои средства управления формой в StackPanel в ScrollViewer, и полоса прокрутки обнаруживается как ожидалось, когда существует слишком много элементов, которые покажут на экране.
Однако, когда я пытаюсь протестировать это на своем сенсорном устройстве, жест панорамирования (помещающий палец вниз на поверхность и перетаскивающий ее вверх) не спускает видимую область, как я ожидал бы.
Когда я просто поместил много элементов в 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>
Если вы используете .NET 4.0, есть классная вещь, недавно выпущенная командой Microsoft !! Они перенесли все эти приятные элементы управления Surface на Win7. SurfaceScrollViewer действительно крутой, как и iphone. Установите этот набор инструментов и запустите проект SurfaceWin7Touch из шаблона проекта VS2010. http://www.microsoft.com/en-us/download/details.aspx?id=26716