是的。使用网格,将所有其他对象和/或控件放置在该网格上,然后为网格指定视图变换以将其旋转若干度。
即要将网格上的所有内容都转换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