项目概述:我正在为大学开发一个项目,试图更新我们的 WPF 应用程序,其中包含叠加控件、地理点、2D 地图和实时 sim 数据。
问题:目前我们的地图(使用 DevExpress 和 SkiaSharp)非常慢,并且不符合我们希望的性能标准。地图必须离线,因此我们无法使用任何在线 API。
目标(如果可能的话):我想安装某种专用的 2D C# 图形引擎,例如在 WPF 应用程序内部工作的 Unity(或其他程序)。我希望控件位于 WPF 应用程序中,例如打开过滤器、叠加层和其他项目。只需要在 Windows 上工作。
我当前的想法是尝试在 WPF 应用程序的部分中托管 Unity 窗口,但我不确定如何实现这一点。
您可能会问,“为什么不在 Unity 中制作整个内容呢?”我考虑过这一点,但我已经在 WPF 应用程序上完成了大量工作,并且当前的 DevExpress 地图控制器不符合我的性能标准,它很慢,占用大量 CPU 功率并且不利用 GPU。
如果有人有更好的想法,我愿意接受选择。
有一个常见的误解,认为 WPF 在某种程度上是 GDI 的“继承者”,因此应该始终使用。这个假设是错误的。性能不是 WPF 的主要设计目标之一,因此如果您需要它,请不要使用 WPF!