这应该是一个非常简单的问题,但经过大量搜索后,似乎在任何地方都没有工作示例。我只想让我的 XNA 窗口开始最大化。我知道如何设置窗口的宽度和高度,但这并不完全相同。我还需要在不全屏的情况下执行此操作。我只想要一个正常的最大化窗口。
问问题
3972 次
5 回答
5
将IsFullScreen
图形设备管理器的属性设置为 true。
http://msdn.microsoft.com/en-us/library/bb195024(v=xnagamestudio.10).aspx
//from the above msdn sample
graphics = new GraphicsDeviceManager( this );
content = new ContentManager( Services );
graphics.PreferredBackBufferWidth = 800;
graphics.PreferredBackBufferHeight = 600;
graphics.PreferMultiSampling = false;
graphics.IsFullScreen = true;
于 2012-08-02T22:20:18.407 回答
4
@Cyral 有迄今为止最接近的答案,但它仍然不是你想要的。要最大化 Windows 窗体,请使用 WindowState 属性:
var form = (Form)Form.FromHandle(Window.Handle);
form.WindowState = FormWindowState.Maximized;
于 2012-08-03T15:17:03.190 回答
2
您可以添加对 System.Windows.Forms 和 System.Drawing 的引用(但是,由于模棱两可,您需要输入命名空间)
在 base.Initialize 之后使用以下代码
Form form = (Form)Form.FromHandle(Window.Handle);
form.Location = Point(0, 0);
form.Size = Screen.PrimaryScreen.WorkingArea.Size;
于 2012-08-03T13:00:13.553 回答
1
其他人已经涵盖了自动最大化的步骤,但是要启用实际的最大化按钮以便用户可以在需要时进行操作,请在 Game 构造函数中执行此操作:
Window.AllowUserResizing = true;
根据您希望游戏在调整大小开始和结束时的行为方式,或者暂停游戏,您可能需要处理其中一些事件。
Form form = (Form)Form.FromHandle(Window.Handle);
form.ResizeBegin += new EventHandler(form_ResizeBegin);
form.ResizeEnd += new EventHandler(form_ResizeEnd);
form.LocationChanged += new EventHandler(form_LocationChanged);
于 2013-09-23T18:29:49.487 回答
0
_graphics = new GraphicsDeviceManager(this);
DisplayMode displayMode = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode;
this._graphics.PreferredBackBufferFormat = displayMode.Format;
this._graphics.PreferredBackBufferWidth = (int)(displayMode.Width);
this._graphics.PreferredBackBufferHeight = (int)(displayMode.Height);
对我来说有点作品但不完全,一旦你尝试你就会明白。我的意思是,它并不完美,我确信有更好的方法,但对于原型制作这应该可以工作 - 或者通过一些调整你可以获得你需要的东西。
于 2012-08-03T08:38:37.153 回答