![]() |
1
4
不是你想要的答案,而是:你不应该在游戏中使用WPF。坚持使用表单(这不会被MS丢弃,因为WPF不会取代表单),或者尝试XNA,如果您想进入下一个级别。 更新: 昨天我很快回答了这个问题,因为我赶时间 和 因为我也研究了WPF是为了做游戏,所以我不想离开没有正确答案的OP。 交易如下:
WPF的目标是简化富UI开发。首先,MS理解编码混合的形式
行为
具有
演示
. 这对应用程序设计和可维护性都是有害的。此外,在表单中,必须对所有内容进行编码;库本身对用户的作用很小。例如,如果需要具有不同外观的按钮,则必须重写其
与WPF, 行为 与 演示 . 例如,什么是按钮?在窗户里,我们知道它是一个圆角的盒子,但是看看周围…您的鼠标滚动也是一个按钮,尽管它看起来与Windows默认按钮完全不同。作为一个按钮意味着有一个特定的行为(主要是点击),而不是像一个盒子。对于WPF,这非常简单。定义一个按钮,然后使用图像或文本将其呈现给用户。 当然,所有这些都要付出代价;例如,WPF比表单慢。游戏需要快速,尽量不要浪费资源。在游戏中,每个行为都会被编码(当然不是用户界面),每个表示都是定制的(二维图形或三维对象),所以无论如何,你都需要做大量的编码。所以你用的是 昂贵的 技术,但放弃了它的大部分好处。 但我不是专家。你可以检查 this 博客,一位前微软员工在近两年的时间里,尝试使用WPF进行游戏。他总结道:
从那里我得出了我的大部分结论。 |
![]() |
2
2
|
![]() |
3
1
有几个容器可以放东西。您要使用的是画布(唯一一个带有坐标系的画布) some more details 关键是你要玩什么样的游戏。使用XAML,它可能是一些基本的应用程序,比如游戏(基本绘图等)。要了解更多信息,请考虑使用XNA。XAML的优点是通过处理程序很容易与用户交互,例如,在屏幕上编写字符串很简单,这对XNA来说有点困难。此外,使用xmal u还可以为IE(xabp)、Windows Phone和Silverlight制作游戏。 你所做的是一个循环式的游戏。 UpDebug(); Prand(); 这更适合XNA。但如果要使用WPF和XAML,请使用Canvans和LayoutUpdate处理程序。 |
![]() |
4
0
您可以尝试使用WinForms主机在WPF中添加Windows窗体自定义控件,并使用OnPaint在其中绘制。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |