これは非常に単純な質問である必要がありますが、多くの検索を行った後、どこにも実際の例がないようです。XNA ウィンドウを最大化して開始したいだけです。ウィンドウの幅と高さを設定する方法は知っていますが、まったく同じではありません。また、全画面表示にせずにこれを行う必要があります。通常の最大化されたウィンドウが必要です。
5 に答える
Set the IsFullScreen
property of the graphics device manager to 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;
@Cyral はこれまでのところ最も近い答えを持っていますが、それでもまだあなたが望むものではありません。Windows フォームを最大化するには、WindowState プロパティを使用します。
var form = (Form)Form.FromHandle(Window.Handle);
form.WindowState = FormWindowState.Maximized;
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;
他の人は自動的に最大化するステップをカバーしましたが、実際の最大化ボタンを有効にして、ユーザーが必要なときにそれを実行できるようにするには、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);
_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);
私にとってはうまくいきますが、完全ではありません。試してみると理解できます。つまり、それは完璧ではなく、もっと良い方法があると確信していますが、プロトタイピングではこれでうまくいくはずです。