全屏模式

时间:2018-09-25 15:42:17

标签: wpf xaml fullscreen

我正在尝试创建全屏模式,正常模式和maximumD模式。 就像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}}"/>

谢谢!

编辑 我写了这段代码

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进行创建

0 个答案:

没有答案