полностью развернуть окно wpf с помощью windowstate - PullRequest
0 голосов
/ 28 декабря 2011

Я использую следующий код для изменения размера экрана:

    private void MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        if (e.ChangedButton == MouseButton.Left)
        {
            switch (WindowState)
            {
                case (WindowState.Maximized):
                    {
                        WindowState = WindowState.Normal;
                        break;
                    }
                case (WindowState.Normal):
                    {
                        WindowState = WindowState.Maximized;
                        break;
                    }
            }
        }
    }

Однако, когда я дважды щелкаю, как только запускается программа, я получаю небольшой пробел в нижней части формы. Чтобы добавить к путанице, когда я изменить размер формы до любого размера (с помощью перетаскивания), проблема исправлена. Может кто-нибудь объяснить, почему это происходит, и возможное решение проблемы?

1 Ответ

3 голосов
/ 28 декабря 2011

Чтобы полностью увеличить окно, установите WindowStyle на None, ResizeMode на NoResize и WindowState на Maximized.


[Обновить] Следующий код отлично работает для меня (обратите внимание, что я переименовал ваш обработчик событий, так как ваш скрывает событие System.Windows.Controls.Control.MouseDoubleClick).Изменение размеров из режима киоска (полноэкранный без оконного хрома) в обычный режим без проблем:

private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left)
    {
        switch (WindowState)
        {
            case (WindowState.Maximized):
                ResizeMode = ResizeMode.CanResize; 
                WindowStyle = WindowStyle.SingleBorderWindow;
                WindowState = WindowState.Normal;
                break;

            case (WindowState.Normal):
                ResizeMode = ResizeMode.NoResize;
                WindowStyle = WindowStyle.None;
                WindowState = WindowState.Maximized;
                break;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...