13

サイズ変更/移動なしで(システムメニューでも境界線でも)、すでに最大化されて開くWPFウィンドウを作成しようとしています。ユーザーが最小化する場合を除いて、常に最大化する必要があります。

WindowState="Maximized"とResizeMode="CanMinimize"を配置しようとしましたが、ウィンドウが開くと、タスクバーが覆われています(必要ありません)。

SC_MOVEとSC_SIZEをキャンセルするWndProcへのフックがあります。また、「コマンドが復元されて最小化されている場合、復元、それ以外の場合、ブロックする」などのWndProcの条件を使用してこの制御を行うこともできます。

しかし、私のポイントは、それを作る別の方法があるかどうかです。読んでくれてありがとう=)

4

4 に答える 4

23

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>
于 2013-03-28T12:44:11.320 に答える
3
WindowState="Maximized"
ResizeMode="NoResize"
WindowStyle="None"

WindowStyle="None" はやりたいことを行いますが、... ウィンドウのタイトルが失われ、ボタンを閉じるなどの問題が発生します。

WindowStyle="None" いくつかの問題にアクセスしてください

于 2016-01-11T13:18:33.850 に答える
1

Tergiver が指摘したように、これは純粋な WPF の方法では不可能です。P/Invoke を使用する必要があります。開いたときにウィンドウがタスクバーを覆う理由については、SC_MOVE と SC_SIZE をキャンセルして、必要な呼び出しを台無しにしていると思います。ウィンドウがロードされた後、これらの呼び出しをキャンセルする必要があるかもしれません。

于 2010-07-31T20:23:12.770 に答える