如何在XNA中最大化窗口

时间:2012-08-02 22:18:15

标签: c# xna window maximize

这应该是一个非常简单的问题,但经过大量的搜索,似乎没有任何工作的例子。 我只是希望我的XNA窗口开始最大化。 我知道如何设置窗口的宽度和高度,但这并不完全相同。 我还需要在不全屏的情况下这样做。我只想要一个普通的最大化窗口。

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

@Cyral到目前为止答案最接近,但它仍然不是你想要的。要最大化Windows窗体,请使用WindowState属性:

var form = (Form)Form.FromHandle(Window.Handle);
form.WindowState = FormWindowState.Maximized;

答案 2 :(得分: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;

答案 3 :(得分:1)

其他人已经介绍了自动最大化的步骤,但要启用实际最大化按钮以便用户可以在需要时执行此操作,请在游戏构造函数中执行此操作:

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);

答案 4 :(得分: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);

排序对我有用但不完全,一旦你尝试就会理解。我的意思是,它并不完美,我确信这是一个更好的方法,但对于原型设计,这应该有效 - 或者通过一些调整,你可以得到你需要的东西。