为了简化我的问题,我想计算一个布局转换(甚至可能是渲染转换)形状的边界框,以便我可以始终完美地围绕该形状放置一个矩形,无论其旋转或缩放如何。如果您能解决这个问题,我会很高兴。
更复杂的问题是计算任何框架元素的视觉边界框。通过“视觉边界框”,我指的是框架元素中最上面可见的像素确定顶部边界,最右边可见的像素确定右边界等。如果您能解决这个问题,我会更加高兴。
我尝试使用LayoutInformation.GetLayoutSlot()进行操作,但它并没有按预期方式工作。“布局插槽”实际上比实际边界要大得多。我还尝试使用VisualTreeHelper.GetDescendantBounds(),但由于我的测试形状的VisualParent受到保护,我无法访问此属性,并决定在进一步深入之前在此处检查。
我希望有人能提供一种轻松的方法来获取WPF元素的真实视觉边界框,在所有转换之后计算。如果我的问题没有表述清楚,请告诉我。
更复杂的问题是计算任何框架元素的视觉边界框。通过“视觉边界框”,我指的是框架元素中最上面可见的像素确定顶部边界,最右边可见的像素确定右边界等。如果您能解决这个问题,我会更加高兴。
我尝试使用LayoutInformation.GetLayoutSlot()进行操作,但它并没有按预期方式工作。“布局插槽”实际上比实际边界要大得多。我还尝试使用VisualTreeHelper.GetDescendantBounds(),但由于我的测试形状的VisualParent受到保护,我无法访问此属性,并决定在进一步深入之前在此处检查。
我希望有人能提供一种轻松的方法来获取WPF元素的真实视觉边界框,在所有转换之后计算。如果我的问题没有表述清楚,请告诉我。
new Rect(0, 0, _element.Width, _element.Height)
可以简化为new Rect(_element.RenderSize)
。 - nmcleanelement.ActualWidth
和element.ActualHeight
才有效。 - oo_dev