Я пытаюсь создать полноэкранный режим, нормальный режим и режим maximizeD.Это что-то вроде Visual Studio.Когда полноэкранный режим включен, строка заголовка скрывается.Когда развернуто, заголовок остается.
На моем XAML есть:
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsFullScreen}" Value="True">
<Setter Property="WindowStyle" Value="None" />
<Setter Property="ResizeMode" Value="NoResize"/>
<Setter Property="WindowState" Value="Maximized" />
<Setter Property="Visibility" Value="Collapsed" TargetName="mainDock"/>
<Setter Property="BorderThickness" Value="0 0 0 0"/>
</DataTrigger>
</ControlTemplate.Triggers>
Этот код устанавливает стили моей настраиваемой строки заголовка, когда IsFullScreen
равен true
, работает нормально.x:Name="mainDock"
только строка заголовка.Используется для скрытия строки заголовка.
var window = (Window)((FrameworkElement)sender).TemplatedParent;
window.WindowStyle = WindowStyle.SingleBorderWindow;
window.ResizeMode = ResizeMode.CanResize;
if (window.WindowState == System.Windows.WindowState.Normal)
window.WindowState = System.Windows.WindowState.Maximized;
else
window.WindowState = System.Windows.WindowState.Normal;
Этот код используется, когда я нажимаю кнопку «Развернуть».Работает нормально.
Проблема в том, что когда я максимизирую и после того, как пытаюсь активировать полноэкранный режим, скрывается только строка заголовка, которая больше не закрывает панель задач.Это как если бы стиль Windows больше не менялся.
Как я могу это сделать?Мне нужны три режима: полноэкранный, максимальный и обычный.Я пытался установить MaxWidth, MaxHeight, Height, Width, например,
<Setter Property="Width" Value="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenWidthKey}}"/>
<Setter Property="Height" Value="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}"/>
Спасибо!
EDIT Я сделал этот код
if (this.WindowState == WindowState.Normal || (this.WindowState == WindowState.Maximized && this.WindowStyle == WindowStyle.SingleBorderWindow))
{
this.WindowState = System.Windows.WindowState.Normal; // if don't set dont work well
this.WindowStyle = WindowStyle.None;
this.ResizeMode = ResizeMode.NoResize;
this.WindowState = System.Windows.WindowState.Maximized;
IsFullScreen = true;
}
else
{
this.WindowStyle = WindowStyle.SingleBorderWindow;
this.ResizeMode = ResizeMode.CanResize;
this.WindowState = System.Windows.WindowState.Normal;
IsFullScreen = false;
}
Но я думаю, что возможно создать только с XAML