Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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_Object_Wpf Controls_Position - Fatal编程技术网

C# WPF画布的位置为矩形

C# WPF画布的位置为矩形,c#,wpf,object,wpf-controls,position,C#,Wpf,Object,Wpf Controls,Position,如何检查矩形对象是否位于画布中的特定位置?我找到的唯一解决方案是遍历画布中的所有子对象,检查它们的位置是否匹配,但我认为这不是一个好的解决方案 所以我需要像Canvas.IsRectangleAtPosition(点x)这样的东西,有类似的东西吗 如果没有,我如何实现这种方法 为了找到最顶层的UI元素(可以获得鼠标输入的元素),只需调用 你也可以使用 你的意思是要找到覆盖某个位置的第一个子对象(或所有子对象)?没错:)并且一个位置只有一个矩形,而不是两个重叠,所以我只需要检查在某个位置是否有一个

如何检查矩形对象是否位于画布中的特定位置?我找到的唯一解决方案是遍历画布中的所有子对象,检查它们的位置是否匹配,但我认为这不是一个好的解决方案

所以我需要像Canvas.IsRectangleAtPosition(点x)这样的东西,有类似的东西吗

如果没有,我如何实现这种方法


为了找到最顶层的UI元素(可以获得鼠标输入的元素),只需调用

你也可以使用


你的意思是要找到覆盖某个位置的第一个子对象(或所有子对象)?没错:)并且一个位置只有一个矩形,而不是两个重叠,所以我只需要检查在某个位置是否有一个矩形它似乎没有帮助,如果我启动程序,它会显示NullReferenceException:/是否有解决方案,或者我是否可以检查画布中某个点的颜色(用户看到的颜色)?您应该找到NullReferenceException的来源。尝试调试。
Point pos = ...
Rectangle rect = canvas.InputHitTest(pos) as Rectangle;
Rectangle rect = VisualTreeHelper.HitTest(canvas, pos).VisualHit as Rectangle;