获取变换后的元素位置我有一个UIElement,它执行了各种变换(缩放和平移)。有没有办法在转换后获取UIElement的位置?我试过GetValue(Canvas.TopProperty)但它并没有改变它的加载方式。我一定是遗漏了一些明显但不确定的东西。(我用的是silverlight)这样做有点不直观,但是可以做到。这是一个两步过程。首先,您使用TransformToVisual函数(来自MSDN):返回一个转换对象,该对象可用于将坐标从UIElement转换为指定对象。TransformToVisual将生成一个GeneralTransform,它将执行从任何UIElement到任何其他UIElement的转换(假设它们都存在于同一可视化树中)。听起来你想要的是RootVisual的转换。vartransform=Application.RootVisual.TransformToVisual(myUiElement);变换对象现在是一个通用变换,可用于变换任何东西,就像myUiElement相对于myUiElement进行变换一样。下一步是使用该变换来变换点。varmyUiElementPosition=transform.Transform(newPoint(0,0));myUiElementPosition现在是一个转换后的Point,应该就是你要找的UIElement的位置。newPoint(0,0)因为我假设你想要相对于RootVisual左上角的位置。试试这个方法:varoffset=Application.RootVisual.TransformToVisual(myObject).Transform(newPoint(0,0));TransformToVisual编辑:怎么样?myObjectTransform.GetValue(CompositeTransform.TranslateXProperty)以上是C#学习教程:获取转换后元素位置共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——myObjectTransform.GetValue(CompositeTransform.TranslateYProperty)本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
