2016-12-16 13 views
1

UIElementのRenderTransformをクリアしたい場合は、それを行うのが好ましい方法は何ですか?両方が動作するようです:任意の副作用がnullに設定することであるだろう場合WPFでは、nullとIdentity for RenderTransformの違いは何ですか?

MyGrid.RenderTransform = null; 

または

MyGrid.RenderTransform = Transform.Identity; 

誰もが違いを知っているかいますか? MSDNから

:あなたは単位行列を適用すると、それがオブジェクトを変更しません

https://msdn.microsoft.com/en-us/library/system.windows.media.transform.identity(v=vs.110).aspx

。これは1を掛けるようなものです。

また、UIElement.RenderTransformのデフォルト値はTransform.Identityです。

https://msdn.microsoft.com/en-us/library/system.windows.uielement.rendertransform(v=vs.110).aspx

答えて

2

違いはありません。 UIElement.ArrangeCoreソースコードでは、見ることができます:

protected virtual void ArrangeCore(Rect finalRect) 
{ 
    this.RenderSize = finalRect.Size; 
    Transform transform = this.RenderTransform; 
    if (transform == Transform.Identity) 
     transform = (Transform) null; 
    // the rest ... 
} 

もしそうならRenderTransformがアイデンティティである - それがnullであるかのように扱われます。

0

それは

MyGrid.ClearValue(UIElement.RenderTransformProperty); 
によって、あなたは nullまたは Transform.IdentityRenderTransformプロパティを設定している場合、あなたはおそらくちょうどそのプロパティをデフォルト値にリセットする場合がありますあまり違いはありません。それに加えて
関連する問題