-1

(これはQ&Aスタイルの質問です。私はすでに自分で答えています)

" wpf でカスタム ウィンドウ クロームを作成していますが、それを windowStyle=none に設定すると、

  • 窓からクリップ
  • ウィンドウをドラッグできない
  • ウィンドウがタスクバーを覆っています

"

4

1 に答える 1

-1

問題を解決する 1

ウィンドウのメイン グリッドに名前でアクセスできるようにします。

<Grid Name="MainGrid">

次に、これらの関数を追加して、ウィンドウの状態が変更されたときにマージンを作成します

void setWinMargin()
{
    switch (WindowState)
    {
        case WindowState.Maximized:
            MainGrid.Margin = new Thickness(8, 8, 8, 8);
            break;
        case WindowState.Normal:
            MainGrid.Margin = new Thickness(0, 0, 0, 0);
            break;
    }
}

private void Window_StateChanged(object sender, EventArgs e)
{
    setWinMargin();
}

これはあなたのxamlです

StateChanged="Window_StateChanged"

これにより、すべてが画面の端から離れて見えるようになります。

問題を解決する 2

ウィンドウ内:

<WindowChrome.WindowChrome>
    <WindowChrome CaptionHeight="35">
    </WindowChrome>
</WindowChrome.WindowChrome>

CaptionHeight をウィンドウ クロムの高さ (ウィンドウをドラッグする場所) にします

問題を解く 3

windowstate none を使用しないでください。windowchrome を定義するだけで、元のボタン (右側) は消えてしまいます。ボタンは表示されずに残ります。その上にボタンを配置する必要があります。

于 2021-03-12T17:20:51.470 に答える