簡體   English   中英

WP7:無法獲取Canvas.RenderTransform值

[英]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的值。 難道我做錯了什么? 提前致謝!

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM