在实施IScrollInfo
的{{1}}成员时,我遇到了一个问题。我需要获取相对于正在滚动的面板的MakeVisible
边界的坐标。
现在如果这是一个Visual
,这很容易,因为我只是称它为'TranslatePoint'方法,但UIElement
是UIElement
的子类,而不是其他方式周围,所以我不一定指望它。
如何实现这一目标?
答案 0 :(得分: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);