0

在实施IScrollInfo's MakeVisiblemember 时,我遇到了一个问题。我需要获取Visual相对于正在滚动的面板的边界坐标。

现在,如果这是 a UIElement,这将很容易,因为我只需调用它的 'TranslatePoint' 方法,但UIElement它是 的子类Visual,而不是相反,所以我不一定能指望它。

如何实现这一目标?

4

1 回答 1

1

Visual 提供了TransformToVisual方法,该方法返回可用于变换点或矩形的GeneralTransform :

var transform = visual1.TransformToVisual(visual2);
var point = transform.Transform(new Point(...));

如果visual1是一个 ContainerVisual,你可以这样做:

var bounds = transform.TransformBounds(visual1.ContentBounds);

或者

var bounds = transform.TransformBounds(visual1.DescendantBounds);
于 2012-12-20T20:02:38.233 回答