0

从 C++/CX XAML 应用程序中,我如何以及何时从 XAML 布局引擎获取信息以了解特定控件或网格位置的最终位置,以便我可以将我的渲染定位到 SwapChainBackgroundPanel 以专门针对该区域?

在立即创建一个页面并将其分配给应用程序的 Current::Window->Content 之后,我假设我需要等待某种布局传递才能给我回电等。然后,一旦发生了,我在哪里可以找到网格位置或任何占位符 XAML 元素的最终布局位置(在窗口相对像素坐标中)?

4

1 回答 1

1

一旦您的后代控件引发 Loaded 事件(需要从 C# 转换为 C++/CX),这应该可以工作:

Rect descendantControlBoundsInWindowCoordinateSpace = DescendantControl
    .TransformToVisual(Window.Current.Content)
    .TransformBounds(
        new Rect(
            0,
            0,
            DescendantControl.ActualWidth,
            DescendantControl.ActualHeight))
于 2012-09-17T21:24:30.093 回答