我在我的应用中使用了scrollviewer来显示图像。当用户触摸显示器的右侧时,我需要在scrollviewer右侧移动stackpanel,当用户触摸左侧时,我需要向左移动。我尝试XNA框架,但vector2类不检查手指的位置。如何实现这一点。
答案 0 :(得分:0)
您应该能够挂钩页面的MouseLeftButtonDown
事件。然后使用MouseEventArgs.GetPosition Method计算用户触摸屏幕的位置。以下是演示此概念的基本示例:
<强> XAML 强>
<ScrollViewer Background="Red">
<StackPanel x:Name="MyStackPanel"
Orientation="Vertical"
Width="150"
Background="Black"
HorizontalAlignment="Left">
<ItemsControl ItemsSource="{Binding Images}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Width="48" Height="48" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
代码背后
public MainPage()
{
InitializeComponent();
this.MouseLeftButtonDown += OnMouseDown;
}
private void OnMouseDown( object sender, MouseButtonEventArgs e )
{
Point pos = e.GetPosition( this );
double half = this.ActualWidth / 2;
if( pos.X < half )
{
MyStackPanel.HorizontalAlignment = HorizontalAlignment.Right;
}
else
{
MyStackPanel.HorizontalAlignment = HorizontalAlignment.Left;
}
}