我正在尝试创建全屏模式,正常模式和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进行创建