WPF - C# - 在代码中创建和设置图像坐标 - 后面

WPF - C# - Creating and setting image coordinates in code - behind

我目前根据我的 AI 兴趣开发 WPF 应用程序。 我写了一个统一成本搜索算法(寻路)并想以图形方式呈现它。 应找到路径并显示在用户可以调整的图表上。

我是 WPF 技术的新手,我更多地使用 WinForms,但现在在创建和管理图形元素方面遇到了问题。

换句话说,我想给机会点击数据网格并创建你自己的节点(比如地图上的某个地方),用图片表示,当你有几个节点时,你可以选择其中的两个它们并连接它们以建立连接,最后你可以 select 你的起点和终点和算法将显示最短路径(为合适的连接着色)。

就是这样。

Image with interface

我开始添加一个 CreateNode 方法,该方法获取点击的坐标并创建一个具有正确 X 和 Y 的点。现在在该特定位置创建图像时出现问题。

我在 Stack 上阅读了一些问题并尝试用 Image 和 BitmapImge 写一些东西 类 但仍然不知道如何将它放在特定的位置。 我阅读了有关操纵边距的信息,但没有更简单的解决方案吗?

这是该图片加载代码的一部分:

        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;
        }

如果有人知道如何在图形的情况下创建这些方法,我将非常感激。

提前致谢

帕维尔

编辑:据说我要为我的代码问题创建新主题所以这里是

将我的评论移至答案以提供更多信息。

根据定位,我建议在 advanced XAML techniques 上观看此视频。他使用自定义 ItemsControl 和 Canvas 绑定送货卡车的经度和纬度以在地图上显示为图形。我认为他的一些技术可能适用于您的情况(或给您进一步的想法)。我已经链接到相关部分开头的时间戳。

相关demo的源码为available here。查看活动 - 2014 TechEd Europe - DEV-B311 XAML 技术 - Demo05

与您对视频所做的主要区别在于,他在您想要使用图像的地方使用 Paths。您需要更改 App.xaml.cs 中的 DataTemplates 才能使用图片。

该视频假定您对 MVVM 有一定的了解,所以如果您不熟悉,可能值得查看教程。您可以找到一些建议 in the answers to this question. I'd also recommend one on Rachel Lim's Blog。我发现她的教程非常有用。

WPF 上的 first linked tutorials 看起来对您有用。除了基础知识外,它还包括使用 DataTemplates.

中的图像