![](/img/trans.png)
[英]How can I perform RenderTransform within ScrollViewer (WP7)?
[英]WP7 : Can't get Canvas.RenderTransform value
我有大約3-4個畫布控件,每個控件包含大約750-1200個路徑。 用戶需要對其進行一些轉換,而我將其用於
Canvas SelectedCanvas;
最初(在構造函數中)SelectedCanvas接受我的畫布控件之一的值。
SelectedCanvas = canvas1;
對於旋轉畫布的按鈕,我使用下一個功能:
private void RotateRightLayerButton_Click(object sender, RoutedEventArgs e)
{
if (SelectedCanvas.RenderTransform != null)
{
//method 1
CompositeTransform ct = canvas1.RenderTransform as CompositeTransform;
if (ct.Rotation == 360)//ct will return NullException
ct.Rotation = 0;
ct.Rotation += 30;
// method 2
TransformGroup tg = canvas1.RenderTransform as TransformGroup;
(tg.Children[0] as RotateTransform).Angle += 30;
//tg will return NullException
}
}
RenderTransform屬性的默認值為Transform.Identity 。 您必須先對Canvas應用一個Transform,例如RotateTransform,然后才能對其進行操作。
如果使用RotateTransform,則代碼必須如下所示:
RotateTransform t = bd1.RenderTransform as RotateTransform;
if (t.Angle >= 360)
t.Angle = 0;
t.Angle += 30;
要么:
RotateTransform t = bd1.RenderTransform as RotateTransform;
t.Angle = (t.Angle + 30) % 360;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.