0

我有一个网格(容器),它又具有几个按行排列的网格(子容器)。这些“子容器”中的每一个都有不同的列和控件。这些“子容器”中的每一个都将水平对齐设置为拉伸,并且必须保持这种状态,因为该查看器的布局取决于它。

我使用“容器”将每个控件设置在适当的位置。到目前为止,一切都很好。现在是我的头疼...我想从网格中删除控件并将其放在画布中,在相同的确切位置,只是,它返回的位置好像控件设置为网格的开头而不是这是真正的立场。出于测试目的,我将“子容器”水平对齐设置为居中,并且(尽管布局完全错误)每个控件在发送到画布时都处于正确位置,当 HA = 拉伸时不会发生这种情况。这是我用来获取位置的代码:

GeneralTransform gt = nc.TransformToVisual(gridZoom);
Point offset = gt.Transform(new Point());

所以你可以理解,例如,我的第一个控件应该在 (80, 1090) 之类的地方,但我得到的点是 (3,3)。

谁能帮我?谢谢

4

1 回答 1

0

您应该尝试使用顶级容器(包含所有其他子容器)来获取偏移点。

您也可以尝试:

var transform = mySubSubSubElement.TransformToVisual(Application.Current.RootVisual);
var position = transform.Transform(new Point(0, 0));
于 2012-04-14T11:24:45.040 回答