Полноэкранный режим - PullRequest
       7

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

0 голосов
/ 25 сентября 2018

Я пытаюсь создать полноэкранный режим, нормальный режим и режим 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

...