我有一個2D畫布,我想沿x軸旋轉。我後來想要沿z軸設置物體的運動。在WPF中沿x軸旋轉畫布
使用CSS,沿x軸旋轉很簡單: transform: rotateX(30deg);
,z軸上的平移也是如此。
Here是我如何旋轉XAML畫布的演示。
如何在XAML/WPF中實現相同的效果?我嘗試使用Viewport3D
和Viewport2DVisual3D
作爲應用3D轉換的起點。但是,畫布一旦放置就不會渲染。我不知道是否需要調整材質照明或幾何圖形。我應該去做什麼最好的方法?有沒有我可以用來簡化這項工作的工具?
我試過使用How to rotate 2D UIElement around a 3D axis (Y)?和How to rotate 2D UIElement around a 3D axis (Y)?的代碼。我似乎無法讓我的代碼與畫布一起工作。
編輯:
我作爲起點鹼使用的代碼在http://www.codeproject.com/Articles/34391/Rotating-WPF-Content-in-D-Space(部分 「ContentControl3D內部件」)嘗試:
<Viewport2DVisual3D>
<Viewport2DVisual3D.Geometry>
<MeshGeometry3D TriangleIndices="0,1,2 2,3,0" TextureCoordinates="0,1 1,1 1,0 0,0" Positions="-1,-1,0 1,-1,0 1,1,0 -1,1,0" />
</Viewport2DVisual3D.Geometry>
<Viewport2DVisual3D.Transform>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="180" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Viewport2DVisual3D.Transform>
<Viewport2DVisual3D.Material>
<DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" Brush="White" />
</Viewport2DVisual3D.Material>
<Viewport2DVisual3D.Visual>
<Border BorderBrush="Transparent" BorderThickness="1">
<Canvas>
<!-- ... -->
</Canvas>
</Border>
</Viewport2DVisual3D.Visual>
</Viewport2DVisual3D>
畫布不呈現。我也嘗試使用其他包裝,以及我提供的其他鏈接,並沒有運氣讓視覺渲染。
你試圖實現什麼樣的效果(示例圖片)?這聽起來像是用'RenderTransform'很容易完成的。 –
同時顯示一些代碼 – lokusking
@ManfredRadlwimmer我添加了一個演示,我如何旋轉它https://jsfiddle.net/33t0ov24/ – Glasspopsicle