Silverlight水平拉伸并获得位置问题

时间:2012-04-14 04:51:18

标签: silverlight grid position alignment

我有一个Grid(容器),它依次有几个按行排列的网格(subContainers)。这些“subContainers”中的每一个都有不同的列和控件。并且每个“subContainers”都将水平对齐设置为拉伸,并且必须保持这种方式,因为此查看器依赖于它的布局。

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

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

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

任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:0)

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

你也可以尝试:

var transform = mySubSubSubElement.TransformToVisual(Application.Current.RootVisual);
var position = transform.Transform(new Point(0, 0));