[解決済み】WPFのコントロールが利用可能なスペースを埋めるようにするにはどうすればいいですか?
質問
一部のWPFコントロール(例えば
Button
は、高さを指定しないと、コンテナ内の空きスペースをすべて消費してしまうようです。
そして、いくつかは、私が今使用する必要があるような、(複数行にわたる)
TextBox
と
ListBox
は、内容を収めるのに必要なスペースだけを確保することをより重視しているようです。
こいつらをセルに入れると
UniformGrid
を使用すると、使用可能なスペースに合わせて展開されます。しかし
UniformGrid
のインスタンスは、すべての状況に適しているわけではありません。いくつかの行に * 高さを設定して、それ自身と他の * 行の間で高さを分割するグリッドを使用する場合はどうでしょうか。もし
StackPanel
を用意し
Label
, a
List
と
Button
ラベルとボタンが占有していないスペースを、リストが占めるようにするにはどうしたらよいでしょうか。
これは本当に基本的なレイアウトの要件だと思うのですが、どうすれば埋められるスペースを埋められるのかがわからないのです(それらを
DockPanel
を設定し、それをfillに設定してもうまくいかないようです。
DockPanel
は、そのサブコントロールが必要とするスペースを占有するだけです)。
リサイズ可能なGUIは、もしあなたが
Height
,
Width
,
MinHeight
,
MinWidth
などです。
をバインドできますか?
Height
と
Width
プロパティを、占有するグリッドセルに設定できますか?それとも他に方法があるのでしょうか?
どのように解決するのですか?
から派生した各コントロールは
Panel
で実行される個別のレイアウトロジックを実装しています。
Measure()
と
Arrange()
:
-
Measure()
パネルとその子パネルのサイズを決定します。 -
Arrange()
は、各コントロールがレンダリングされる矩形を決定します。
の最後の子である。
DockPanel
は残りのスペースを埋めます。 この動作を無効にするには
LastChild
プロパティを
false
.
は
StackPanel
は、各子供に希望するサイズを尋ね、それらを積み重ねる。 スタックパネルは
Measure()
は、それぞれの子に対して、利用可能なサイズの
Infinity
を作成し、その子の希望するサイズを使用します。
A
Grid
は利用可能なすべてのスペースを占めますが、各子供を希望するサイズに設定し、セル内で中央に配置します。
を派生させることで、独自のレイアウトロジックを実装することができます。
Panel
をオーバーライドし、さらに
MeasureOverride()
と
ArrangeOverride()
.
参照 この記事 は簡単な例です。
関連
-
[解決済み] WCFとWPFの違いは何ですか?
-
[解決済み] WPFのTextBlockでテキストを複数行に表示させるには?
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み】1つのWPF TextBlockに複数の値をバインドする方法は?
-
[解決済み】MVVMのフレームワークは何を使えばいい?[クローズド]
-
[解決済み】Window Height="Auto "が期待通りに動作しない。
-
[解決済み】WPFデータグリッドの下部に空の行が表示される。
-
[解決済み】WPFとイニシャルフォーカス
-
[解決済み】WPFで逆ブーリアンプロパティをバインドする方法は?
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] コメントを含むXAMLをコメントアウトする方法はありますか?
-
[解決済み] WCFとWPFの違いは何ですか?
-
[解決済み] LabelとTextBlockの違い
-
[解決済み] XAMLで名前が名前空間に存在しないエラーが発生する
-
[解決済み】INotifyPropertyChangedとViewModelのDependencyPropertyの比較
-
[解決済み】WPFのコントロールが利用可能なスペースを埋めるようにするにはどうすればいいですか?
-
[解決済み】WPFコントロールを名前またはタイプで検索するにはどうすればよいですか?
-
[解決済み】WPFのテキストブロックを選択可能にする方法はありますか?
-
[解決済み】MVVMのフレームワークは何を使えばいい?[クローズド]
-
[解決済み】WPFで逆ブーリアンプロパティをバインドする方法は?