2

这应该是一个非常简单的问题,但经过大量搜索后,似乎在任何地方都没有工作示例。我只想让我的 XNA 窗口开始最大化。我知道如何设置窗口的宽度和高度,但这并不完全相同。我还需要在不全屏的情况下执行此操作。我只想要一个正常的最大化窗口。

4

5 回答 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;

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphicsdevicemanager.isfullscreen(v=xnagamestudio.10).aspx

于 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 回答