使用 WPF 显示地图

发布于 2024-11-07 03:53:43 字数 451 浏览 0 评论 0原文

我是 WPF 新手,对 GUI 编码也比较陌生,所以如果这对某些人来说似乎是显而易见的,请耐心等待。

我正在尝试使用 WPF/C# 显示随机生成的地图,以模拟传播 RF 信号的行为。每个地图坐标可以包含零个或多个项目 - 它可以是建筑物、车辆、动物群或地理数据(没有一个表示平坦的草地)。我想在窗口中或在页面上向用户显示它。但我不知道怎么办。

我最初的想法是使用带有预定义方法的画布来绘制项目。但地图会很大,我只想在任何时候向用户显示地图的一小部分。

那么,我想知道的是,我可以创建一个画布,在上面绘制我想要的内容,然后只向用户显示其中的一小部分吗?如果没有,或者这并不简单,是否有更好的方法?我也不一定想要一个具体的答案 - 一个更通用的解决方案会更好(即告诉我我需要使用“Blah”和“Blah blah”会比写出整个代码更好 - 我喜欢学习通过尽可能多地了解这些事情,而不是复制和粘贴)。

谢谢。

大卫

I am new to WPF, and relatively new to GUI coding, so bear with me if this seems obvious to some.

I am trying to display a randomly generated map using WPF/C#, in order to simulate the behaviour of a propagating RF signal. Each map coordinate can have zero or more items within it - it could be buildings, vehicles, fauna or geographical data (none indicates flat grassy fields). I would like to display this in a window, or on a page to the user. But I don't know how.

My original thought was a canvas with a pre-defined method for drawing items. But the map will be massive, and I only want to display a small portion of the map to the user at any one time.

So, what I want to know is, can I create a canvas, draw what I want onto it, and then display only a small portion of that to the user? If not, or if that is not simple, is there a better way of doing it? I don't necessarily want a specific answer either - a more generic solution would be better (i.e. tell me I need to use a "Blah" with a "Blah blah" would be better than writing out the whole code - I like to learn about these things as much as possible by doing, not copy and paste).

Thanks.

David

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恰似旧人归 2024-11-14 03:53:43

这里有一些想法:

您可以尝试直接通过 GraphicsContext 绘制对象。 在这里您可以找到概述。

另请查看 CompositionTarget.Rendering,它还允许您渲染每帧(到目前为止尽可能)。

如果它是图形密集型的,也许研究 XNA-framework 也是个好主意。

Here some ideas:

You can try to paint your objects directly via the GraphicsContext. Here you find an overview.

Also check out CompositionTarget.Rendering, it allows you also to render per frame (as far as possible).

If it is graphically intensive, perhaps it's also a good idea to look into the XNA-framework.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文