C# TransformToAncestor是否使用UIElement.RenderTransform?

C# TransformToAncestor是否使用UIElement.RenderTransform?,c#,wpf,rendertransform,C#,Wpf,Rendertransform,当调用TransformToAncestor时,使用什么矩阵来建立生成的GeneralTransform?当进入pdb时,我看到的是一个带有签名的TransformField,如: private static readonly UncommonField<Transform> TransformField = new UncommonField<Transform>(); private static readonly unmonfield TransformFiel

当调用TransformToAncestor时,使用什么矩阵来建立生成的GeneralTransform?当进入pdb时,我看到的是一个带有签名的TransformField,如:

private static readonly UncommonField<Transform> TransformField = new UncommonField<Transform>();
private static readonly unmonfield TransformField=new unmonfield();

在生成的一般转换中使用,没有什么比反射镜更好。尤其是在它仍然免费的时候;)

代码很复杂,但可以遵循。基本上,它沿着视觉树走,并对变换进行分组,但整个过程要复杂得多,我从来没有兴趣深入研究它。查看Visual.TrySimpleTransformToAncestor以了解血淋淋的细节


为了回答这个问题,UIElement当然从来没有被明确使用过;转换是通过一个特效(您提到的“非同寻常”字段)进行检索的,所以我猜转换通常是作为特效应用的,因此您可以从任何地方通过这个快捷方式获取它们,但这只是基础结构和实现细节,我很可能是错的:)

您如何访问这个“特效”?嗯,这是视觉的视觉效应属性,至少在理论上是这样。然而,答案中的一个重要部分是内部函数Effect.impressionUnitSpaceGeneralTransform,我认为它可能具有在应用任何效果后返回转换的作用。。。尽管如此,我还是不确定接下来会发生什么:)任何更多的事情都是WPF内部的,外部世界也无法真正访问,除非你复制了所有的代码——也许如果你有一个特定的原因让你感兴趣,这个对话可能会更有成效?:)我正在使用System.Windows.Controls.Image派生类的OnRender动态(基于缩放级别和剪辑矩形)显示非常大的图像。我有一个场景,在这个场景中,一个附加的视觉被注入到渲染树中,TransformToAncestor会返回一个不正确的GeneralTransform。在缩放之后,我得到了正确的结果。我试图弄明白为什么我总是得到不好的结果。我在不同的树级别上尝试了各种更新,但似乎没有任何效果。