WPF无边框窗口最大化了不同分辨率的问题

时间:2014-03-25 12:06:08

标签: wpf

我在WPF中有无边框窗口,它使用了一些自定义样式。我正在使用具有不同分辨率的多个显示器来显示应用程序。当应用程序从较小分辨率移动到最大分辨率监视器时,应用程序未正确最大化并且屏幕的某些区域显示为空。我如何才能在所有决议中最大化?

由于

2 个答案:

答案 0 :(得分:0)

这应该解决它。

<Window WindowState="Maximized">
</Window>

答案 1 :(得分:0)

尝试使用WindowChrome类绘制窗口。此功能允许重绘窗口的非客户区域。这意味着您可以将无边框窗口用作SingleBordered窗口。它解决了自定义窗口的很多问题。 如果您的目标是.NET 4.5,只需键入:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">

<WindowChrome.WindowChrome>
    <WindowChrome/>
</WindowChrome.WindowChrome>

<Grid>

</Grid>
</Window>

对于4.5以下的.NET您必须引用Microsoft.Windows.Shell.dll,然后使用例如shell:WindowChrome获得相同的结果。

也不要使用

WindowState = Windows.WindowState.Maximized
而是输入例如

<Button x:Name="buttonMaximize" Command="{Binding Source={x:Static SystemCommands.MaximizeWindowCommand}}">

使用默认的Windows操作来最大化带有动画和完美缩放的窗口。