c# – 如何检索WPF控件的可见区域/区域,考虑透明度,其他控件重叠?

我需要考虑透明度来确定 WPF控件的可见区域/区域与其他控件重叠.

请考虑以下情形:

画布上的三个控件.蓝色和绿色与第三​​个重叠.绿色的有一个透明的矩形区域.是否有可能有问题地得到红色矩形标记的可见区域1,2,3?

类似的东西(以下API不存在):

Geometry[] visibleAreas = VisualTreeHelper.GetVisibleGeometry(controlInTheBack);

在此先感谢您的任何建议.

更新:

我试图使用DrawingGroup drawingGroup = VisualTreeHelper.GetDrawing(visual)来获取每个控件的几何.

然后在重叠控件上使用CombinedGeometry和GeometryCombineMode =“Union”来获取重叠区域.

然后在后面的控件的几何体和union的结果之间使用CombinedGeometry和GeometryCombineMode =“Exclude”来获得可见区域.

问题是VisualTreeHelper.GetDrawing(控件)返回null.

解决方法

你有没有尝试过使用HitTest?它可能会有所帮助

http://msdn.microsoft.com/en-us/library/ms752097.aspx

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...