1. ホーム
  2. .net

[解決済み] グリップだけでサイズ変更できるボーダーのないWPFウィンドウを作成するには?

2023-02-08 15:53:53

質問

もし ResizeMode="CanResizeWithGrip" を設定すると、WPF の Window をクリックすると、以下のように右下にリサイズグリップが表示されます。

もし WindowStyle="None" を設定すると、タイトルバーは消えますが、灰色の面取りされたエッジは ResizeMode="NoResize" . 残念ながら、このプロパティの組み合わせでは、リサイズグリップも表示されません。

をオーバーライドして Window 's ControlTemplate を経由して、カスタム Style . ウィンドウの境界を自分で指定したいので、ユーザーが 4 つの側面すべてからウィンドウのサイズを変更できるようにする必要はありませんが、リサイズ グリップは必要です。

これらの基準すべてを満たす簡単な方法を誰か詳しく教えてください。

  1. しない にはボーダーがあります。 Window で自分で指定したものとは別に ControlTemplate .
  2. する 右下隅にリサイズ用のグリップがあります。
  3. を使用しないでください。 はタイトルバーがありません。

どのように解決するのですか?

を設定すると AllowsTransparency プロパティに Window (プロパティを使用すると、(透明度の値を設定しなくても)境界線がなくなり、グリップを介してのみサイズを変更できるようになります。

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="640" Height="480" 
    WindowStyle="None"
    AllowsTransparency="True"
    ResizeMode="CanResizeWithGrip">

    <!-- Content -->

</Window>

結果は次のようになります。