2013-09-10 7 views
1

В настоящее время я использую следующий код, чтобы разрешить пользователю изменять размер и разворачивать окно:окно Maximize в XNA 4.0

Window.AllowUserResizing = true; 
Window.ClientSizeChanged += Window_ClientSizeChanged; 

с Window_ClientSizeChanged обработки событий изменения и повторно масштабирования нарисованные изображения и т.д.

Это позволяет мне изменять размер окна, сколько бы я ни хотел, а также максимизировать его, используя стандартную кнопку в ручке окна. Я хотел бы иметь возможность запускать приложение с окном в его максимизированном режиме, но не могу понять, как это сделать. Я знаю, что могу использовать graphics.IsFullScreen = true;, чтобы показать его в полноэкранном режиме, но я хотел бы иметь возможность запускать программу в максимизированном оконном режиме. Есть идеи?

ответ

2

Вы можете поместить этот код в конструкторе, чтобы делать то, что вы хотите:

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

Это требует, чтобы добавить ссылку на System.Windows.Forms к вашему проекту.

У этого есть недостаток, что он фактически устанавливает графическое устройство дважды при запуске. Один раз в обычном порядке, а затем еще раз, потому что окно было изменено. (Хотя это все происходит до того, как форма сначала отображается.)

Это преимущество состоит в том, чтобы быть чрезвычайно простым в реализации.


Я собираюсь копаться на некоторое время и посмотреть, если порядок инициализации может быть изменен ...

Там действительно не простой способ, чтобы обойти эту проблему, казалось бы.

+0

Я видел этот ответ пару раз и не мог заставить его работать. Не понял, что я должен был добавить новую ссылку в explorer. Ответы, которые я видел, просто добавили 'using System.Windows.Forms' в начало основного класса. Дайте мне знать, если вы найдете исправление для двойного запуска. Спасибо за вашу помощь. :) –

+0

Оказывается, это очень проблема для слишком жесткой корзины. Потенциально вовлекает много win32, играющих вокруг. –

+0

А, вероятно, вне сферы моего проекта. Возможно, что-то заглянуть в будущее более крупные, где это может вызвать несколько проблем. –