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;
}
以上。
コメントを書く