这应该是一个非常简单的问题,但经过大量的搜索,似乎没有任何工作的例子。 我只是希望我的XNA窗口开始最大化。 我知道如何设置窗口的宽度和高度,但这并不完全相同。 我还需要在不全屏的情况下这样做。我只想要一个普通的最大化窗口。
答案 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;
答案 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);
排序对我有用但不完全,一旦你尝试就会理解。我的意思是,它并不完美,我确信这是一个更好的方法,但对于原型设计,这应该有效 - 或者通过一些调整,你可以得到你需要的东西。