[WPF, xaml] 要素のサイズに合わせてWindowの大きさを自動的にリサイズ調整する方法

[WPF, xaml] 要素のサイズに合わせてWindowの大きさを自動的にリサイズ調整する方法

WPFでCSSみたいに勝手にサイズを調整てほしい

WPFでとあるアプリケーションを開発しているときに、動的にコンテンツを生成する場面がありました。これ自体は問題ないのですが、画面(Window)のサイズ(Width, Heigh)も含まれる要素・コンテンツのサイズに応じて動的にリサイズしたかったのでその方法を調べました。

以下その方法をメモします。

SizeToContent プロパティ

Windowクラスは SizeToContent というプロパティをもっており、ここに値を設定してやることで自動調整してくれるようになります。

列挙型(SizeToContent)から以下のいずれかを指定できます.

意味
Manual 手動で調整する。デフォルトの挙動。
Width 画面の幅をコンテンツに合わせて自動的に調整する。
Height 画面の高さをコンテンツに合わせて自動的に調整する。
WidthAndHeight 画面の幅と高さをコンテンツに合わせて自動的に調整する。

デフォルトの挙動では Manual に設定されているため、自分で設定した大きさになります。自動的に調整したい箇所に合わせていずれかのプロパティを設定してやることで、自動的に画面の幅と高さをそれぞれ調整することが可能です。

以下設定例です。Windowクラスの持っているプロパティに設定しています。

public MainWindow()
{
    InitializeComponent();

    // 手動でWindowの幅と高さを設定する(Default)
    this.SizeToContent = SizeToContent.Manual;

    // コンテンツに合わせて自動的にWindow幅をリサイズする
    this.SizeToContent = SizeToContent.Width;

    // コンテンツに合わせて自動的にWindow高さをリサイズする
    this.SizeToContent = SizeToContent.Height;

    // コンテンツに合わせて自動的にWindow幅と高さをリサイズする
    this.SizeToContent = SizeToContent.WidthAndHeight;
}

以上。

.NET Frameworkカテゴリの最新記事