如何在 xna 中设置窗口/屏幕大小?

Posted

技术标签:

【中文标题】如何在 xna 中设置窗口/屏幕大小?【英文标题】:How do I set the window / screen size in xna? 【发布时间】:2010-10-17 18:03:16 【问题描述】:

如何在 XNA 中调整窗口的大小。

默认以 800x600 分辨率开始。

【问题讨论】:

【参考方案1】:

我发现你需要设置

GraphicDevice.PreferredBackBufferHeight = height;
GraphicDevice.PreferredBackBufferWidth = width;

当您在游戏类的构造函数中执行此操作时,它可以工作,但是当您尝试在构造函数之外执行此操作时,您还需要调用

GraphicsDevice.ApplyChanges();

此外,您可以使用全屏(调试时无法正常工作)

if (!GraphicsDevice.IsFullScreen)
   GraphicsDevice.ToggleFullScreen();

【讨论】:

这个答案有点过时了,所以我建议在下面查看 Fuex 的答案。基本相同,但代码无需任何编辑即可编译。【参考方案2】:

你应该看看这个,http://forums.xna.com/forums/p/1031/107718.aspx。

【讨论】:

【参考方案3】:

此解决方案适用于 XNA 3.0。只需将其放入游戏对象的构造函数中即可:

// Resize the screen to 1024 x 768.
IntPtr ptr = this.Window.Handle;
System.Windows.Forms.Form form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(ptr);
form.Size = new System.Drawing.Size(1024, 768);

graphics.PreferredBackBufferWidth = 1024;
graphics.PreferredBackBufferHeight = 768;

graphics.ApplyChanges();

【讨论】:

【参考方案4】:

从 XNA 4.0 开始,此属性现在可以在 GraphicsDeviceManager 上找到。 IE。此代码将进入您的游戏的构造函数中。

graphics = new GraphicsDeviceManager(this);
graphics.IsFullScreen = false;
graphics.PreferredBackBufferHeight = 340;
graphics.PreferredBackBufferWidth = 480;

// if changing GraphicsDeviceManager properties outside 
// your game constructor also call:
// graphics.ApplyChanges();

【讨论】:

Sjors Miltenburg 下面的回答现在已经过时了。 Fuex 的这个答案适用于 XNA 4.0。 不过,在此之后您仍然需要执行 graphics.ApplyChanges()。

以上是关于如何在 xna 中设置窗口/屏幕大小?的主要内容,如果未能解决你的问题,请参考以下文章

在MFC怎么中设置窗口大小和位置?

如何在 CMDIFramewndEx 中设置 m_wndClientArea 的最小尺寸?

如何在 CollectionView.Footer 中设置 XAML 按钮大小?

如何获取 XNA 游戏屏幕上的窗口位置?

如何在Kivy的TabbedPanel中设置图像大小?

在 Windows Phone 的通用 Windows 应用程序中设置应用程序大小