我有一個WPF圖像。我會在其中渲染一個方向盤。我想模擬方向盤的旋轉。用戶應觸摸方向盤的任何地方。它應該順時針和逆時針旋轉。範圍是0到400度和0到-400度。它和普通車一樣。旋轉方向盤 - WPF
任何想法開始?請舉個合乎邏輯的例子,我是一名開發人員,但不是數學家,所以我不知道如何計算旋轉角度。
我的目標設備是一個基於觸摸的Windows平板電腦。
-Rajeevan
我有一個WPF圖像。我會在其中渲染一個方向盤。我想模擬方向盤的旋轉。用戶應觸摸方向盤的任何地方。它應該順時針和逆時針旋轉。範圍是0到400度和0到-400度。它和普通車一樣。旋轉方向盤 - WPF
任何想法開始?請舉個合乎邏輯的例子,我是一名開發人員,但不是數學家,所以我不知道如何計算旋轉角度。
我的目標設備是一個基於觸摸的Windows平板電腦。
-Rajeevan
動畫在WPF是很容易...有沒有需要任何的我們是數學家。您可以旋轉任何UIElement
很容易使用RotateTransform
Class和UIElement.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>
通過這些例子,我相信你會按照鏈接找出如何完成你的要求,而不是要求我做全部你的工作。
我知道WPF對RotateRenderTransform有很強的支持。但就我而言,我認爲這並不容易。它不會在按鈕點擊或圖片加載時啓動雙動畫。但是當我觸摸並按住方向盤圖像時,它必須相應地順時針和逆時針旋轉。它也不會是連續的旋轉。在每次鼠標移動或觸摸移動時,必須找到新的旋轉角度。這個例子很好,我想我必須對它進行編碼並從外部提供角度。爲了找到角度,我可能需要一些數學。 – 2014-09-05 04:24:36
我的朋友,我已經向您提供了MSDN上相關頁面的鏈接以及一個可幫助您入門的示例。如果您通讀鏈接的頁面,您將看到您也可以從代碼啓動動畫。由於這些是*你的*要求,*你*必須做一些工作來完成它們。我真的不確定,如果不爲你做所有的工作,我還能做些什麼。 – Sheridan 2014-09-05 07:56:46