是的。使用網格,將所有其他對象和/或控件放置在該網格上,然後爲網格指定視圖變換以將其旋轉若干度。
即要將網格上的所有內容都轉換45度,它將在XAML中看起來像這樣;
<Grid x:Name="LayoutRoot" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="45"/>
<TranslateTransform/>
</TransformGroup>
</Grid.RenderTransform>
<Rectangle Fill="White" Stroke="Black" Margin="198,161,265,196"/>
</Grid>
該示例只在網格上有一個矩形,但無論包含多少個對象,該概念都完全相同。
欲調整旋轉到C#,那麼你可以用以下後,將旋轉90度的網格:
RotateTransform aRT = new RotateTransform(90);
this.LayoutRoot.RenderTransform = aRT;
您好,感謝您的答覆,你能進一步幫助? 我想知道如何在c#中完成這一切,因爲我撥號中的元素數量是可變的。 我應該爲每個新元素創建一個新的網格,然後在創建它時轉換每個網格? 此外,撥號可由用戶編輯,可以添加新元素,刪除它們等,每次撥號被修改時,都必須重新繪製 - 所以我假設每個元素都必須重新繪製。 .. – Will 2009-08-30 08:12:55
- 動態創建一個新的網格 - 添加圖形,它 - 繪製 - 能夠摧毀它,並重新繪製整個錶盤 因爲我不知道有多少元素會出現在我的錶盤,因爲它們是在運行時由用戶創建的,我無法創建具有命名變量的網格,但如果網格未命名,那麼以後如何刪除它? 謝謝, 請問。 – Will 2009-08-30 08:14:00