gpt4 book ai didi

wpf - 如何对 XAML 中定义的矩形使用 IntersectsWith 方法

转载 作者:行者123 更新时间:2023-12-04 19:08:58 25 4
gpt4 key购买 nike

我在 XAML 中有这个矩形:

<Rectangle x:Name="MyRectangle" Height="300" Width="300"></Rectangle>

我想检查它是否与另一个矩形相交。在 this question on SO ,他们说必须使用 IntersectsWith method .
但我无法在代码隐藏中使用它。当我用 C# 编写时:
MyRectangle.IntersectsWith(

我得到标准错误:

"System.Windows.Shapes.Rectangle does not contain a definition for 'IntersectsWith' and no extension method [...]"



我认为这是因为 XAML 中的矩形是 System.Windows.Shapes.Rectangle , 方法适用于 System.Windows.Rect ?如果是这样,有没有办法“改造”我的 RectangleRect ?

最佳答案

这是我最终使用的解决方案。
对于我想测试它是否与其他元素相交的每个元素,我创建了一个包含它的 Rect。因此,我可以使用 IntersectsWith 方法。

示例(使用矩形,但您可以使用其他图形、用户控件、...):
XAML

<Canvas>
<Rectangle x:Name="Rectangle1" Height="100" Width="100"/>
<Rectangle x:Name="Rectangle2" Height="100" Width="100" Canvas.Left="50"/>
</Canvas>

C#
Rect rect1 = new Rect(Canvas.GetLeft(Rectangle1), Canvas.GetTop(Rectangle1), Rectangle1.Width, Rectangle1.Height);
Rect rect2 = new Rect(Canvas.GetLeft(Rectangle2), Canvas.GetTop(Rectangle2), Rectangle2.Width, Rectangle2.Height);
if(rect1.IntersectsWith(r2))
{
// The two elements overlap
}

关于wpf - 如何对 XAML 中定义的矩形使用 IntersectsWith 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com