我目前正在根据我的AI兴趣开发一个WPF应用程序。我编写了一个均匀成本搜索算法(路径查找),并希望以图形方式展示它。路径应被找到并显示在图表上,用户可以调整图表。
我在WPF技术方面还是新手,我更多地使用WinForms,现在在创建和管理图形元素方面遇到了问题。
换句话说 – 我希望提供一个机会,让用户点击数据网格并创建自己的节点(比如地图上的一个位置),这个节点由一张图片表示,当你有几个节点时,你可以选择其中两个并连接它们以建立连接,最后你可以选择你的起点和终点,算法将显示最短路径(为合适的连接着色)。
就是这样。
我从添加一个CreateNode方法开始,该方法获取点击的坐标并创建一个具有正确X和Y的点。现在的问题是如何在那个特定位置创建一个图像。
我在Stack上阅读了一些问题,并尝试使用Image和BitmapImage类编写一些东西,但仍然不知道如何将它放置在特定位置。我读到了关于操作边距的内容,但没有更简单的解决方案吗?
这是部分图像加载代码:
public void CreateNode(Node n) { Point point = new Point(n.X, n.Y); Image node = new Image(); BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri("point.png"); logo.CacheOption = BitmapCacheOption.OnLoad; logo.EndInit(); node.Source = logo; }
如果有人对如何在图形方面创建这些方法有任何想法,我将非常感激。
提前感谢
Paweł
编辑:有人建议我为我的代码问题创建一个新主题,所以在这里 这里
回答:
将我的评论移动到答案中以提供更多信息。
关于定位,我建议观看这个关于高级XAML技术的视频。他使用自定义的ItemsControl和Canvas来绑定送货卡车的经纬度,以图形方式显示在地图上。我认为他的一些技术可能适用于你的情况(或给你更多想法)。我已经链接到相关部分开始的时间戳。
相关演示的源代码在这里可用。参见事件 – 2014年TechEd欧洲 – DEV-B311 XAML技术 – 演示05
你所做的事情与视频的主要区别是他使用Paths
而你想使用图像。你需要更改App.xaml.cs中的DataTemplates
以使用图像。
该视频假设你对MVVM有一定的了解,所以如果这对你来说是新的,可能值得查看一个教程。你可以在这个问题的答案中找到一些推荐。我还推荐Rachel Lim的博客上的一个。我发现她的教程非常有用。
第一个链接的教程看起来对你会很有用。除了基础知识外,它还包括在DataTemplates
中使用图像。