我在我的应用程序中使用了滚动查看器来显示图像。当用户触摸显示屏的右侧时,我需要在滚动查看器右侧移动堆栈面板,并在用户触摸左侧时向左移动。我在 XNA 框架中尝试,但 vector2 类不检查手指的位置。如何实现这一点。
问问题
134 次
1 回答
0
您应该能够挂钩MouseLeftButtonDown
页面的事件。然后使用MouseEventArgs.GetPosition 方法计算用户触摸屏幕的位置。这是一个演示此概念的基本示例:
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;
}
}
于 2012-04-27T21:22:48.470 回答