Включите Максимизируют, Минимизируют, и Окно Восстановления в WPF (Руководство Изменяют размер, отключают),

Я должен включить следование моего приложения (приложение C# WPF):

  1. Имейте нормальный размер 1024*768
  2. Пользователь может максимизировать приложение
  3. Пользователь может минимизировать приложение
  4. Пользователь может восстановить приложение (1024*768)
  5. Пользователь не может вручную изменить размер приложения путем перетаскивания его границы.

Нет никого ResizeMode выполнение всех тех требований. Там какой-либо путь состоит в том, чтобы сделать, делают?

5
задан Marius Bancila 8 May 2014 в 07:52
поделиться

2 ответа

body > * означает «любой элемент, являющийся прямым потомком элемента body ».

Сравните его с body * , что означает «любой элемент, являющийся потомком элемента body ». Это также соответствует элементу < a > в < body > < p > < a >...

, например.

-121--2451631-

* относится ко всем элементам, а > означает непосредственные дочерние элементы, поэтому body > * означает все непосредственные дочерние элементы тела.

Возможно, это какой-то взлом для ссылки на конкретный браузер, хотя я не знаком с ним.

-121--2451632-

Вы можете прослушать событие Window.StartChanged, и внутри вашего обработчика вручную установить ширину и высоту обратно на 1027 и 768. Он по-прежнему позволяет пользователю перетаскивать края окна для изменения размера, но затем окно возвращается к заданному размеру. Недостаток этого заключается в том, что окно имеет «захват» всякий раз, когда пользователь пытается изменить размер - не самое красивое, что нужно видеть. Минимизировать и максимизировать нормальную работу.

0
ответ дан 14 December 2019 в 13:36
поделиться

Наконец-то я нашел относительно приличное решение.

Идея состоит в том, чтобы игнорировать событие OnStateChanged окна, отменить ограничения Min / Max и обновить его.

Если окно не развернуто, мы просто применяем ограничения Min / Max.

    protected override void OnStateChanged(EventArgs e)
    {
        if (WindowState == WindowState.Maximized)
        {
            MinWidth = 0;
            MinHeight = 0;
            MaxWidth = int.MaxValue;
            MaxHeight = int.MaxValue;

            if (!m_isDuringMaximizing)
            {
                m_isDuringMaximizing = true;
                WindowState = WindowState.Normal;
                WindowState = WindowState.Maximized;
                m_isDuringMaximizing = false;
            }
        }
        else if (!m_isDuringMaximizing)
        {
            MinWidth = 1024;
            MinHeight = 768;
            MaxWidth = 1024;
            MaxHeight = 768;
        }

        base.OnStateChanged(e);
    }
6
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: