这是我用于最大化自己的窗口的代码:
private void maximizeWindow(object sender, RoutedEventArgs e)
{
this.Width = SystemParameters.WorkArea.Width;
this.Height = SystemParameters.WorkArea.Height;
}
这是代码的行为:
所以问题是,当我最大化窗口时,屏幕会最大化,但是窗口未位于中心,我总是必须将屏幕向左上方移动才能看到整个屏幕。
答案 0 :(得分:2)
如果要最大化窗口,则应将<script>
var value = document.getElementById("data").innerHTML;
$.notify(value);
</script>
属性设置为WindowState
:
WindowState.Maximized
答案 1 :(得分:1)
由于知道要使窗口最大化而不覆盖任务栏,因此我建议您使用WindowChrome
。
<Window x:Class="MejirdrituTeWarqoudear.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="540" Height="360">
<WindowChrome.WindowChrome>
<WindowChrome CornerRadius="0" />
</WindowChrome.WindowChrome>
<Window.Template>
<ControlTemplate TargetType="Window">
<Border Name="Bd">
<AdornerDecorator>
<Border Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}">
<ContentPresenter />
</Border>
</AdornerDecorator>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="WindowState" Value="Maximized">
<Setter TargetName="Bd" Property="Padding" Value="8" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Template>
<Border BorderThickness="8" BorderBrush="Teal" />
</Window>
通过将WindowState
设置为Maximized
,该窗口将像普通窗口一样最大化而不覆盖任务栏。
Template
添加了Window
。我编写模板以在窗口最大化时添加额外的填充。如果将其删除,则会发现窗口最大化后将失去一些边缘。无论您的DPI值是什么,该值都是8
。WindowChrome
帮助您将客户区UI扩展到非客户区。因此,您无需再次将窗口设置为透明。删除AllowsTransparency="True"
和WindowStyle="None"
属性。如果您只关心主屏幕:
// If you only cover the primary screen.
Left = 0.0;
Top = 0.0;
Width = SystemParameters.PrimaryScreenWidth;
Height = SystemParameters.PrimaryScreenHeight;
如果您需要多个屏幕:
// If you have more than one screen monitors, The code below covers the whole screen area.
Left = SystemParameters.VirtualScreenLeft;
Top = SystemParameters.VirtualScreenTop;
Width = SystemParameters.VirtualScreenWidth;
Height = SystemParameters.VirtualScreenHeight;
答案 2 :(得分:0)
您还需要设置WPF窗口的位置。添加以下内容以及您的代码:
this.Left = 0;
this.Top = 0;