我认为这是一个非常简单的请求,但我似乎无法在搜索中找到决定性的答案。如何确定窗口中特定视觉元素相对于其他父元素的边界?
我试过使用 LayoutInformation.GetLayoutSlot
但这似乎只是在 0,0 处返回一个 Rect
,并没有反射(reflect)元素的实际位置。
我想做的是使用 RenderTargetBitmap
截取窗口的“屏幕截图”,然后将其裁剪到特定元素,但我无法获取元素的边界以了解要做什么裁剪位图!
最佳答案
很简单:
public static Rect BoundsRelativeTo(this FrameworkElement element,
Visual relativeTo)
{
return
element.TransformToVisual(relativeTo)
.TransformBounds(LayoutInformation.GetLayoutSlot(element));
}
事实上,把它放在一个单独的方法中可能有点矫枉过正。
关于c# - 确定 WPF 元素相对于某个父元素的边界矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472388/