[英]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
属性设置为null
或Transform.Identity
,也没有太大的区别,您可能只想通过以下方式将属性重置为其默认值:
MyGrid.ClearValue(UIElement.RenderTransformProperty);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.