c# - 确定 WPF 元素相对于某个父元素的边界矩形

标签 c# wpf layout bounds rect

我认为这是一个非常简单的请求,但我似乎无法在搜索中找到决定性的答案。如何确定窗口中特定视觉元素相对于其他父元素的边界?

我试过使用 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/

相关文章:

c# - 合并多个文本文件的有效方法

c# - 将 ItemsControl 绑定(bind)到 ViewModel 上的 ViewModel 集合

wpf - WPFtoolkit 与 .Net 4.5 兼容吗?

javascript - React-Native:避免文本换行

C# - 声明(不实现)接口(interface)实例的原因

c# - 有没有一种好方法可以将结果从外部进程流式传输到 Visual Studio 输出 Pane 中?

c - Linux 中的内存布局 - system() 行为

Android - 放置在 res/drawable-xhdpi 中的超大图像没有显示在平板电脑模拟器上,为什么?

c# - HashSet<T>.Contains() 对于大型列表、多线程是否高效?

c# - WPF DataTemplate 绑定(bind)取决于属性的类型