Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 考虑到透明度,如何检索WPF控件中与其他控件重叠的可见区域?_C#_Wpf_Xaml - Fatal编程技术网

C# 考虑到透明度,如何检索WPF控件中与其他控件重叠的可见区域?

C# 考虑到透明度,如何检索WPF控件中与其他控件重叠的可见区域?,c#,wpf,xaml,C#,Wpf,Xaml,考虑到透明度,我需要确定WPF控件与其他控件重叠的可见区域 考虑以下场景: 画布上的三个控件。蓝色和绿色的与第三个重叠。绿色的有一个透明的矩形区域。是否有可能以红色矩形标记可见区域1、2、3 类似于(以下API不存在): 提前感谢您的建议 更新: 我尝试使用DrawingGroup DrawingGroup=VisualTreeHelper.GetDrawing(visual)来获取每个控件的几何图形 然后在重叠控件上使用CombinGeometry和GeometryCombineMode=“

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

考虑以下场景:

画布上的三个控件。蓝色和绿色的与第三个重叠。绿色的有一个透明的矩形区域。是否有可能以红色矩形标记可见区域1、2、3

类似于(以下API不存在):

提前感谢您的建议

更新:

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

然后在重叠控件上使用CombinGeometry和GeometryCombineMode=“Union”组合几何以获得重叠区域

然后使用CombinedGeometry和GeometryCombineMode=“Exclude”在后面控件的几何图形和并集结果之间进行组合,以获得可见区域


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

您是否已经尝试使用HitTest?这可能会有帮助


该链接不再可用:(这是新链接
Geometry[] visibleAreas = VisualTreeHelper.GetVisibleGeometry(controlInTheBack);