Полноэкранный режим WPF Metro Window

В настоящее время я работаю над приложением WPF и не знаю, как сделать свое приложение в полноэкранном режиме. Я использую MahApps.Metro, поэтому мой тип главного окна - Controls.MetroWindow.

Я пробовал это:

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      ResizeMode="NoResize"
                      WindowState="Maximized"
                      Title="MyProject">

Но он не скрывает панель задач Windows. Но это работает, когда я использую простое окно. Я посмотрел исходный код MetroWindow, он наследует класс Window, поэтому не понимаю, почему он не работает.

Единственный способ, которым я нашел полноэкранное окно с Metro, - это установить для свойства IgnoreTaskbarOnMaximize значение true и удалить ResizeMode = "NoResize" (см. Код ниже), запустите приложение и разверните его.

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      IgnoreTaskbarOnMaximize="True"
                      Title="MyProject">

Но я бы хотел скрыть кнопки «Свернуть» и «Развернуть». У вас есть идеи запустить Controls.MetroWindow в полноэкранном режиме?


person Junior Dussouillez    schedule 10.09.2013    source источник
comment
Это неотъемлемое свойство окна MahApps.Metro. Окно по умолчанию MahApps.Metro имеет несколько P / Invokes, чтобы окно не закрыло панель задач при максимальном увеличении.   -  person Ming Slogar    schedule 10.09.2013


Ответы (2)


Я могу воспроизвести вашу проблему. Вы должны сообщить об этом как об ошибке здесь

Простой обходной путь на данный момент может быть следующим:

Держите свой xaml таким же, как и нужно:

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      WindowStyle="None"
                      IgnoreTaskbarOnMaximize="True"
                      Title="MyProject">

и в коде программной части Window:

public MainWindow() {
  InitializeComponent();
  Loaded += OnLoaded;
}

private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) {
  WindowState = WindowState.Maximized;
  ResizeMode = ResizeMode.NoResize;
  ShowMaxRestoreButton = false;
  ShowMinButton = false;
  Loaded -= OnLoaded;
}

Это придаст вам желаемое поведение. Мы в значительной степени устанавливаем состояние (развернуто), скрываем кнопки min / max с событием Loaded и делаем это только один раз.

person Viv    schedule 10.09.2013
comment
Это именно то, что мне нужно! Большое спасибо ! Хорошо, я сообщу об этом. - person Junior Dussouillez; 10.09.2013
comment
@JuniorD. Я сообщил об этом сегодня: github.com/MahApps/MahApps.Metro/issues/797 - person Yannick Blondeau; 13.11.2013

с последней версией альфа у вас есть два разных способа получить это:

первый

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      ResizeMode="NoResize"
                      WindowState="Maximized"
                      IgnoreTaskbarOnMaximize="True"
                      Title="MyProject">

второй

<Controls:MetroWindow x:Class="MyProject.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
                      xmlns:Views="clr-namespace:MyProject.Views"
                      UseNoneWindowStyle="True"
                      WindowState="Maximized"
                      Title="MyProject">

со вторым решением у вас также нет строки заголовка, нет кнопок min, max, close

person punker76    schedule 13.11.2013