2012-04-26 39 views

回答

10

作爲指定由MSDN:

要應用轉換到FrameworkElement的,創建一個變換並將其應用到該FrameworkElement的類提供兩個屬性中的一個:LayoutTransform - 變換在所述佈局之前施加通過。在應用變換之後,佈局系統處理元素的變換大小和位置。 RenderTransform - 修改元素外觀但在佈局傳遞完成後應用的轉換。通過使用RenderTransform屬性而不是LayoutTransform屬性,可以獲得性能優勢。 您應該使用哪個屬性? 由於它提供了性能優勢,因此儘可能使用RenderTransform屬性,特別是在使用動畫變換對象時。縮放,旋轉或傾斜時使用LayoutTransform屬性,並且需要元素的父元素調整爲元素的轉換大小。請注意,當它們與LayoutTransform屬性一起使用時,TranslateTransform對象似乎對元素沒有影響。這是因爲佈局系統將翻譯後的元素作爲其處理的一部分返回到其原始位置。

也:如果您在不需要全通佈局系統的場景調用它

LayoutTransform可能會導致應用性能不佳。將LayoutTransform應用於面板的Children集合時,會觸發佈局系統的新傳遞,並強制重新測量和重新排列所有屏幕上的對象。如果您正在更新完整的應用程序用戶界面(UI),則此功能可能正是您需要的功能。但是,如果您不需要完整佈局傳遞,請使用RenderTransform屬性,該屬性不會調用佈局系統,因此對於此方案來說通常是更好的選擇。

+1

非常有幫助。謝謝! – 2013-09-08 04:18:27

12

要添加到gliderkite的回答中,RenderTransforms也將在GPU處理時進行處理,而LayoutTransforms則在CPU上完成。

+0

一個關鍵的區別,謝謝 – 2013-09-08 04:19:34