0
在實施IScrollInfo
的MakeVisible
成員,我遇到了一個問題。我需要獲取相對於正在滾動的面板的邊界的座標。如何獲得視覺相對於其他視覺座標系的邊界?
現在,如果這是一個UIElement
,這將是容易,因爲我就叫它「TranslatePoint將」方法,但UIElement
是Visual
,而不是周圍的其他方式的子類,這樣我就可以不必對數。
一個如何去實現這一目標?
在實施IScrollInfo
的MakeVisible
成員,我遇到了一個問題。我需要獲取相對於正在滾動的面板的邊界的座標。如何獲得視覺相對於其他視覺座標系的邊界?
現在,如果這是一個UIElement
,這將是容易,因爲我就叫它「TranslatePoint將」方法,但UIElement
是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);
完美!正是我在找什麼。謝謝!我直接使用傳遞給IScrollInfo.MakeVisible調用的矩形的TransformBounds,而且效果很好! – MarqueIV