繁体   English   中英

在WPF中,RenderTransform的null和Identity之间有什么区别?

[英]In WPF, what's the difference between null and Identity for RenderTransform?

如果要清除UIElement上的RenderTransform,执行此操作的首选方法是什么? 两者似乎都起作用:

MyGrid.RenderTransform = null;

要么

MyGrid.RenderTransform = Transform.Identity;

有谁知道它的区别,或者将其设置为null是否会有副作用?

从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

没有区别。 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。

除此之外,如果将RenderTransform属性设置为nullTransform.Identity ,也没有太大的区别,您可能只想通过以下方式将属性重置为其默认值:

MyGrid.ClearValue(UIElement.RenderTransformProperty);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM