Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# C/WPF:具有嵌套UI元素的线条几何图形_C#_Wpf_Visual Studio_Visual Studio 2010 - Fatal编程技术网

C# C/WPF:具有嵌套UI元素的线条几何图形

C# C/WPF:具有嵌套UI元素的线条几何图形,c#,wpf,visual-studio,visual-studio-2010,C#,Wpf,Visual Studio,Visual Studio 2010,使用LineGeometry在画布元素中嵌套的两个简单形状之间绘制路径时遇到问题 下面是我为演示问题而准备的一个快速演示: MainWindow.xaml: MainWindow.xaml.cs: 我认为粘贴代码会让每个人的生活变得更轻松,因为我在解释事情方面非常糟糕: 在这个演示中,我可以成功地在嵌套在parentCanvas中的矩形之间绘制路径,但是当我尝试对椭圆使用相同的方法时,我嵌套在同样嵌套在parentCanvas中的单独画布元素中,它似乎没有做任何事情 我尝试实现这一点的原因是,对

使用LineGeometry在画布元素中嵌套的两个简单形状之间绘制路径时遇到问题

下面是我为演示问题而准备的一个快速演示:

MainWindow.xaml:

MainWindow.xaml.cs:

我认为粘贴代码会让每个人的生活变得更轻松,因为我在解释事情方面非常糟糕:

在这个演示中,我可以成功地在嵌套在parentCanvas中的矩形之间绘制路径,但是当我尝试对椭圆使用相同的方法时,我嵌套在同样嵌套在parentCanvas中的单独画布元素中,它似乎没有做任何事情

我尝试实现这一点的原因是,对于我的实际应用程序,我尝试使用多个连接点和单个椭圆来可视化块画布元素,因此我需要能够在分布在不同块上的这些椭圆之间绘制路径。这方面的图形表示形式如下:

欢迎提出意见/建议

谢谢,
哈姆扎。

嗯,我找到了一个解决办法来完成我最初试图做的事情。我没有试图找到嵌套在画布元素中的子Shape元素,而是简单地从形状的位置计算一组坐标

这段代码应该解释我是如何做到这一点的:

lg.StartPoint = new Point((Canvas.GetLeft(canvasSrc) + canvasSrc.ActualWidth - 1), (Canvas.GetTop(canvasSrc) + Canvas.GetTop(rectangle5) + rectangle5.ActualHeight / 2));
lg.EndPoint = new Point((Canvas.GetLeft(canvasDest) + 1), (Canvas.GetTop(canvasSrc) + Canvas.GetTop(rectangle6) + rectangle6.ActualHeight / 2));
在其他人发现有用时发布此信息: