如何?WPF窗口 - 最大化,无大小/移动

Thi*_*bra 12 wpf window maximize-window window-resize

我正在尝试创建一个已经最大化的WPF窗口,没有调整大小/移动(在系统菜单中,也不在边框中).它应该始终最大化,除非用户将其最小化.

我试图把WindowState ="Maximized"和ResizeMode ="CanMinimize",但是当窗口打开时,它覆盖了任务栏(我不想要它).

我有一个WndProc的钩子取消了SC_MOVE和SC_SIZE.我也可以在WndProc中使用条件进行此控制,例如"如果命令是恢复并且最小化,则恢复,否则,阻止"等等.

但我的观点是,如果我们有另一种方法来实现它.感谢阅读家伙=)

Ste*_*pUp 18

有必要WindowState="Maximized" ResizeMode="NoResize"在窗口的xaml中写入 :

<Window x:Class="Miscellaneous.EditForm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Edit Form" WindowState="Maximized" ResizeMode="NoResize"></Window>
Run Code Online (Sandbox Code Playgroud)


Mar*_*rko 1

正如 Tergiver 指出的那样,这在纯粹的 WPF 方式中是不可能的。您必须使用 P/Invoke。至于为什么窗口打开时会覆盖任务栏,我认为您通过取消 SC_MOVE 和 SC_SIZE 搞乱了一些必需的调用。也许您应该在窗口加载后取消这些调用。