Mic*_*lla 5 wpf xaml rectangles hittest
我在XAML中有这个矩形:
<Rectangle x:Name="MyRectangle" Height="300" Width="300"></Rectangle>
Run Code Online (Sandbox Code Playgroud)
我想检查它是否与另一个矩形相交.在关于SO的这个问题中,他们说必须使用IntersectsWith方法.但是我无法在代码隐藏中使用它.当我用C#写的时候:
MyRectangle.IntersectsWith(
Run Code Online (Sandbox Code Playgroud)
我得到标准错误:
"System.Windows.Shapes.Rectangle不包含'IntersectsWith'的定义,也没有扩展方法[...]"
我认为那是因为XAML中的矩形是a System.Windows.Shapes.Rectangle,而且方法适用于System.Windows.Rect?如果是这样,有没有办法将我Rectangle变成一个Rect?
这是我最终使用的解决方案。对于我想要测试的每个元素是否与其他元素相交,我创建一个包含它的 Rect。因此,我可以使用 IntersectsWith 方法。
示例(使用矩形,但您可以使用其他图形、用户控件等执行此操作):XAML
<Canvas>
<Rectangle x:Name="Rectangle1" Height="100" Width="100"/>
<Rectangle x:Name="Rectangle2" Height="100" Width="100" Canvas.Left="50"/>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |