2014-09-04 100 views
1

我有一個WPF圖像。我會在其中渲染一個方向盤。我想模擬方向盤的旋轉。用戶應觸摸方向盤的任何地方。它應該順時針和逆時針旋轉。範圍是0到400度和0到-400度。它和普通車一樣。旋轉方向盤 - WPF

任何想法開始?請舉個合乎邏輯的例子,我是一名開發人員,但不是數學家,所以我不知道如何計算旋轉角度。

我的目標設備是一個基於觸摸的Windows平板電腦。

-Rajeevan

回答

2

動畫在WPF是很容易...有沒有需要任何的我們是數學家。您可以旋轉任何UIElement很容易使用RotateTransform ClassUIElement.RenderTransform Property

<Ellipse StrokeThickness="5" Stroke="Black" Width="100" Height="50"> 
    <Ellipse.RenderTransform> 
     <RotateTransform /> 
    </Ellipse.RenderTransform> 
</Ellipse> 

現在動態顯示RotateTransform,我們可以使用Storyboard Class(其中有去一個BeginStoryboard的元素:

<BeginStoryboard> 
    <Storyboard RepeatBehavior="Forever"> 
     <DoubleAnimation Storyboard.TargetProperty="(Ellipse.RenderTransform). 
(RotateTransform.Angle)" From="0" To="360" Duration="0:0:2" /> 
    </Storyboard> 
</BeginStoryboard> 

最後,當控件加載時,我們可以觸發此動畫:

<Ellipse StrokeThickness="5" Stroke="Black" Width="100" Height="50" 
    RenderTransformOrigin="0.5,0.5"> 
    <Ellipse.Triggers> 
     <EventTrigger RoutedEvent="Loaded"> 
      <BeginStoryboard> 
       <Storyboard RepeatBehavior="Forever"> 
        <DoubleAnimation Storyboard.TargetProperty=" 
         (Ellipse.RenderTransform).(RotateTransform.Angle)" 
         From="0" To="360" Duration="0:0:2" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Ellipse.Triggers> 
    <Ellipse.RenderTransform> 
     <RotateTransform /> 
    </Ellipse.RenderTransform> 
</Ellipse> 

通過這些例子,我相信你會按照鏈接找出如何完成你的要求,而不是要求我做全部你的工作。

+0

我知道WPF對RotateRenderTransform有很強的支持。但就我而言,我認爲這並不容易。它不會在按鈕點擊或圖片加載時啓動雙動畫。但是當我觸摸並按住方向盤圖像時,它必須相應地順時針和逆時針旋轉。它也不會是連續的旋轉。在每次鼠標移動或觸摸移動時,必須找到新的旋轉角度。這個例子很好,我想我必須對它進行編碼並從外部提供角度。爲了找到角度,我可能需要一些數學。 – 2014-09-05 04:24:36

+0

我的朋友,我已經向您提供了MSDN上相關頁面的鏈接以及一個可幫助您入門的示例。如果您通讀鏈接的頁面,您將看到您也可以從代碼啓動動畫。由於這些是*你的*要求,*你*必須做一些工作來完成它們。我真的不確定,如果不爲你做所有的工作,我還能做些什麼。 – Sheridan 2014-09-05 07:56:46