Я выяснил, как это лучше всего сделать благодаря некоторым указателям из TheBrain.
Во-первых, вам нужно следить за событиями изменения размера окна, которым вы хотите управлять:
NativeApplication.nativeApplication.activeWindow.addEventListener(NativeWindowBoundsEvent.RESIZE, onWindowResize);
Затем обработайте это событие, чтобы решить, развернуто ли окно или нет:
public function onWindowResize(event:NativeWindowBoundsEvent):void
{
if (event.afterBounds.height >= Screen.mainScreen.visibleBounds.height && event.afterBounds.width >= Screen.mainScreen.visibleBounds.width)
isMaximised = true;
else
isMaximised = false;
}
Затем вам нужно поймать или создать собственную кнопку максимизации, и при нажатии выполнить следующий код:
if (isMaximised)
{
var bounds:Rectangle = Screen.mainScreen.visibleBounds;
NativeApplication.nativeApplication.activeWindow.bounds = bounds;
}
else
{
NativeApplication.nativeApplication.activeWindow.bounds = new Rectangle(100, 100, 500, 600);
}
Вы можете изменить границы для максимального увеличения (что удобно для пользовательских хромированных окон с тенями), а также вы можете настроить приложение на сброс до размера по умолчанию, если кнопка «Развернуть» нажата, когда она уже развернута (или ничего не делать ).
У меня возникли проблемы с назначением списка изменения размера окна, и в итоге я удалял и добавлял его каждый раз при нажатии кнопки «Развернуть». Это немного излишне, но не так уж плохо.