Я хочу добиться того же эффекта, что и проигрыватели Windows Media Player или браузеры на базе Flash, которые занимают ПОЛНОЕ (даже панель задач не видна) недвижимости при максимальном увеличении.Окно WPF со стилем = None закрывает панель задач, когда Максимизировано после инициализации приложения
Это прекрасно работает, если WindowState
установлен в Maximized
и WindowStyle
установлен в None
в XAML, так что приложение запускается в таком состоянии. Проблема в том, что я хочу запустить приложение в ограниченном окне и, когда пользователь выбирает, максимизировать, как указано выше. В обработчике StateChanged
я проверяю состояние Maximized
, и если это так, я устанавливаю WindowStyle
в None
. Это приводит к максимизации окна, но НЕ закрывает панель задач. Следующий код будет делать эту работу, как я хочу, но хак, и я хотел бы, чтобы очистить его:
if (WindowState == WindowState.Maximized)
{
m_videoWindow.Maximize();
WindowStyle = WindowStyle.None;
//the following makes this work but I would like to clean it up
Hide();
Show();
}
EDITThis (с 2006 года, когда еще в CTP) упоминает проблему и кто-то из MS заявляет, что они надеются улучшить полноэкранную поддержку в следующей версии, были ли эти улучшения сделаны?
Эта проблема все еще жива и хороша со всеми последними версиями WPF/.NET 4.0 ... - Думаю, Microsoft хотела, чтобы эта ошибка была обратной совместимость ... ваше исправление для скрытия/показа прекрасно работает, хотя ... Я делаю свое немного иначе, называя Скрыть, устанавливая свойства, а затем вызываю Show. – BrainSlugs83
Ну, черт побери. Я заметил, что некоторые из моих элементов управления не изменяются правильно, не знаю, почему (с моим заказом или с вашим заказом ...); Быстрое решение было для Maximize, вызвать DoEvents(), установить WindowStyle в None, а затем вызвать Hide & Show. - DoEvents - это, конечно, System.Windows.Forms.Application.DoEvents() (Да, я знаю, что это безумие и, вероятно, худшая практика, но она работает ...) – BrainSlugs83