Q
WPF旋轉按鈕
5
A
回答
11
已經在鏈接一看Viewport2DVisual3D
的例子正是這麼做的。
編輯:這裏是從與Z的添加動畫鏈接軸
的例子看起來這
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera Position="0, 0, 4"/>
</Viewport3D.Camera>
<Viewport2DVisual3D x:Name="v2dv3d">
<Viewport2DVisual3D.Transform>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0, 1, 0" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Viewport2DVisual3D.Transform>
<Viewport2DVisual3D.Geometry>
<MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0"
TextureCoordinates="0,0 0,1 1,1 1,0" TriangleIndices="0 1 2 0 2 3"/>
</Viewport2DVisual3D.Geometry>
<Viewport2DVisual3D.Material>
<DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White"/>
</Viewport2DVisual3D.Material>
<Button Content="Hello, 3D">
<Button.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<Rotation3DAnimation Storyboard.TargetName="v2dv3d"
Storyboard.TargetProperty="(Viewport2DVisual3D.Transform).(RotateTransform3D.Rotation)"
Duration="0:0:2"
BeginTime="0:0:0">
<Rotation3DAnimation.From>
<AxisAngleRotation3D Angle="0" Axis="0, 1, 0" />
</Rotation3DAnimation.From>
<Rotation3DAnimation.To>
<AxisAngleRotation3D Angle="90" Axis="0, 1, 0" />
</Rotation3DAnimation.To>
</Rotation3DAnimation>
<Rotation3DAnimation Storyboard.TargetName="v2dv3d"
Storyboard.TargetProperty="(Viewport2DVisual3D.Transform).(RotateTransform3D.Rotation)"
Duration="0:0:2"
BeginTime="0:0:2">
<Rotation3DAnimation.From>
<AxisAngleRotation3D Angle="-90" Axis="0, 1, 0" />
</Rotation3DAnimation.From>
<Rotation3DAnimation.To>
<AxisAngleRotation3D Angle="0" Axis="0, 1, 0" />
</Rotation3DAnimation.To>
</Rotation3DAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Viewport2DVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="#FFFFFFFF" Direction="0,0,-1"/>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
1
轉換可以幫助你在這種情況下。如果有幫助,請看here。
RotateTransform類用於旋轉X-Y平面中的WPF對象。它可以通過XAML或通過命令式代碼直接應用。
1
如果您只需要旋轉關於Z軸的按鈕,那麼您將不需要任何3D圖形。所有的UIElements(例如按鈕)都有屬性RenderTransform,可以對其默認外觀進行基本轉換。通過Storyboards,WPF允許你animate almost any dependency property。您可以使用一個故事板,觸發負載,動畫應用到按鈕RotateTransform的Angle屬性:
<Button Width="100" Height="100" Content="Wheeee!">
<Button.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard Storyboard.TargetName="ButtonRotation" Storyboard.TargetProperty="Angle">
<DoubleAnimation From="0" To="360" Duration="0:0:3" RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
<Button.RenderTransform>
<RotateTransform x:Name="ButtonRotation" CenterX="50" CenterY="50" Angle="45"/>
</Button.RenderTransform>
</Button>
的Viewport2DVisual3D的建議,@Meleak,還支持動畫,是樂趣,如果玩你有時間。進行動畫顯示MSDN例如,需要一個名稱添加到AxisAngleRotation3D元件並切換到目標Z軸:
<AxisAngleRotation3D x:Name="RotateAboutZ" Angle="40" Axis="0, 0, 1" />
然後,如上所述,觸發一個情節串連圖板來開始對的Viewport3D的Loaded事件。在任何一種情況下,如果您需要對動畫進行更多控制,則可以使故事板成爲其他事件引用的命名資源,甚至可以完全用代碼構建和控制它。
相關問題
- 1. 旋轉按鈕
- 2. Jquery旋轉按鈕
- 3. 按鈕旋轉GPUImage
- 4. X軸旋轉按鈕android
- 5. 按鈕不會旋轉libGDX
- 6. uitableviewcell中的旋轉按鈕
- 7. 旋轉後重繪按鈕
- 8. UWP旋轉按鈕動畫
- 9. 按鈕動作不旋轉
- 10. WPF旋轉鼠標上的按鈕的內容/背景
- 11. WPF如何使僅按鈕圖標旋轉,當鼠標移到
- 12. 將旋轉/平移到按鈕meshgeometry3d wpf c#
- 13. WPF:檢測轉換按鈕
- 14. 旋轉視圖不旋轉音量按鈕圖標
- 15. WPF旋轉木馬/旋轉元件
- 16. wpf操作旋轉
- 17. WPF旋轉動畫
- 18. jQuery 3D圖像+按鈕旋轉木馬
- 19. android按鈕右對齊旋轉-90度
- 20. 如何旋轉系統覆蓋按鈕
- 21. 旋轉字符的HTML按鈕
- 22. iPhone旋轉時按鈕消失
- 23. 輕鬆對齊旋轉的按鈕
- 24. 2個按鈕的Iphone 3D旋轉
- 25. 與旋轉器和單選按鈕
- 26. CGAffineTransform:旋轉UIButton調整按鈕圖像
- 27. 如何旋轉矩陣的按鈕
- 28. iphone:點擊按鈕將旋轉視圖
- 29. android - 圖片旋轉在圖像按鈕
- 30. Flash動作腳本3旋轉按鈕
謝謝您的回答。我不確切。我需要動畫這個過程。 – Yevgeniy
@Eugene:用z軸動畫更新了我的答案。粘貼並嘗試:) –
@Meleak這是一個Y軸旋轉。如果將軸更改爲Z,則還可以簡化故事板,因爲按鈕不會從相機中轉開。 – Kimberly