【问题标题】:WPF - C# - Creating and setting image coordinates in code - behindWPF - C# - 在代码中创建和设置图像坐标 - 隐藏
【发布时间】:2016-07-04 22:15:37
【问题描述】:

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

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

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

就是这样。

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

如果有人对如何在图形的情况下创建这些方法有任何想法,我会非常感激。

提前致谢

帕维尔

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

【问题讨论】:

  • 有了定位,我建议看this video on advanced XAML techniques。他使用自定义的ItemsControlCanvas 来绑定送货卡车的经度和纬度,以在地图上显示为图形。我认为他的一些技巧可以在你的情况下工作(或给你更多的想法)。我已链接到相关部分开头的时间戳。
  • 请参阅 this answer 并在 DataTemplate 中将 <Rectangle .../> 替换为 <Image Source="point.png"/>
  • 谢谢你们,我会尝试用 ItemsControl 和 Canvas 写一些东西。我不确定我是否有足够的知识,所以如果你能回答这个问题,以防我失败,那就太好了。
  • 对于您遇到的问题发布新问题可能会更好。只需确保在新问题中包含MCVE。更多人会看到它,并可能对新问题有答案,How to Ask a question which is a continuation 中列出了其他一些原因。

标签: c# wpf graphics artificial-intelligence path-finding


【解决方案1】:

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

就定位而言,我建议您在advanced XAML techniques 上观看此视频。他使用自定义的 ItemsControl 和 Canvas 来绑定送货卡车的经度和纬度,以在地图上显示为图形。我认为他的一些技巧可以在你的情况下工作(或给你更多的想法)。我已链接到相关部分开头的时间戳。

相关演示的源代码是available here。查看活动 - 2014 TechEd Europe - DEV-B311 XAML 技术 - Demo05

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

该视频假定您对 MVVM 有一定的了解,因此,如果您对此不熟悉,可能值得一看教程。你可以找到一些建议in the answers to this question。我还会在Rachel Lim's Blog 上推荐一个。我发现她的教程非常有用。

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

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多