2011-08-16 37 views
0

我正在處理顯示XAML對象的WPF應用程序,我希望通過使用鼠標滾輪放大和縮小XAML對象。我可以創建鼠標滾輪的XAML對象的平滑過渡,但我無法理解如何區分鼠標滾輪方向。我發現我應該使用觸發器的屬性,但我找不到如何爲鼠標滾輪執行此操作。WPF鼠標滾輪方向檢測和故事板

這是我到目前爲止的代碼,它觸發任何鼠標滾輪動作(向上或向下):

<UserControl.Triggers> 
    <EventTrigger RoutedEvent="Mouse.MouseWheel" > 
     <BeginStoryboard Storyboard="{StaticResource OnMouseWheel1}"/> 
    </EventTrigger> 
</UserControl.Triggers> 

感謝你的助手在那裏:)

+0

您是否嘗試將其作爲代碼實現? –

回答

1

你可以使用WPF XAML Canvas可能有助於實現一個好的故事板。檢查http://msdn.microsoft.com/en-us/library/cc294753.aspx

這是一個簡短的例子,您可能需要使用DoobleAnimation。

<Canvas.Resources> 
<Storyboard x:Name="ZoomStoryboard"> 
     <DoubleAnimation x:Name="ZoomAnimationX" 
         Storyboard.TargetName="Workspace" 
        Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleX" 
          Duration="0:0:0.2"/> 
      <DoubleAnimation x:Name="ZoomAnimationY" 
          Storyboard.TargetName="Workspace" 
          Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleY" 
          Duration="0:0:0.2"/> 
     </Storyboard> 
    </Canvas.Resources> 

對我來說是更好的開發代碼後面。

+0

感謝您的及時回覆,但我不太明白。我有一個可以容納我的XAML對象的畫布,當我移動鼠標滾輪時,它會觸發上面代碼中指定的故事板,但是我想爲鼠標滾輪啓動一個不同的故事板,以及另一個鼠標滾輪停止事件我不知道如何區分兩者。 –

+0

您應該在後面的代碼中指定該操作。不需要放在故事板中。 –

+0

太棒了,聽起來像是我的解決方案。謝謝! –