2012-04-15 53 views
1

我已經在我的應用中使用了滾動查看器來顯示圖像。當用戶觸摸顯示器的右側時,我需要將滾動查看器右側的堆棧面板移動到左側,並在用戶觸摸左側時向左移動。我嘗試使用XNA框架,但vector2類不檢查手指的位置。如何實現這一點。想要在用戶觸摸顯示屏的左側部分時觸發事件

回答

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; 
    } 
} 
背後