2013-02-20 88 views
1

我有下面的代碼來調整圖像控制爲什麼在執行RenderTransform後ActualWidth/ActualHeight不會改變?

private void ApplyScale() 
    { 
     ((CompositeTransform)img.RenderTransform).ScaleX = TotalImageScale; 
     ((CompositeTransform)img.RenderTransform).ScaleY = TotalImageScale; 
     Debug.WriteLine("img.Width: " + img.Width.ToString() + " - img.ActualWidth: " + img.ActualWidth.ToString()); 
     Debug.WriteLine("img.Height: " + img.Height.ToString() + " - img.ActualHeight: " + img.ActualHeight.ToString()); 

    } 

雖然代碼工作正常,我試圖理解爲什麼像ActualWidthActualHeight縮放後不會改變。它們總是與WidthHeight的值相同。

如何獲得新的圖像控制尺寸?我是否必須通過比例變化率手動計算?

回答

1

RenderTransform不應該影響佈局,如果它改變了ActualSize,它會這樣做。如果您使用LayoutTransform它應該更改這些值,但從舊尺寸和比例因子中查找新尺寸是一個相對簡單的計算。

+0

我明白了。但在Windows Phone 8中沒有LayoutTransform? – PutraKg 2013-02-20 07:31:54

+0

@PutraKg對不起,我看到了LayoutTransform和ActualSize,並假設WPF。我對WP8一無所知,但關於RenderTransform的信息仍然是正確的。 – TheEvilPenguin 2013-02-20 09:33:58

相關問題