[解決済み] XAML ColumnDefinitionの*(アスタリスク)の意味は?
2022-08-24 20:11:46
質問
以下のXAMLにおける*(アスタリスク)の意味を教えてください。
<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="102,134,0,0"
Name="grid1" VerticalAlignment="Top"
Width="354">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="314*" />
</Grid.ColumnDefinitions>
</Grid>
どのように解決するのですか?
WPF グリッドで列を定義するとき、3 つの可能な値のいずれかに幅を設定することができます。
- 固定幅。
-
Auto
- カラムはその子カラムにフィットするために必要な幅になります。 -
*
(星形) 残りの利用可能なスペースを占有する
は
*
には数字が前置される(数字が指定されない場合のデフォルトは1)。利用可能なスペースは、接頭辞の番号に比例して星印の列に分割される。
もし、この定義が
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
最初の列は利用可能な総スペースの7%を取得し、2番目の列は93%を取得することになります。一方、このような定義があった場合。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
最初の列は利用可能なスペースの1/3、2番目の列は2/3を取得することになります。
グリッドの幅が 354 で、2 つの列の比率が 40 と 314 である特定のケースでは、次の列幅が得られます。
最初の列の幅 = 40/(40 + 314)*354 = 40 二番目の列の幅 = 314/(40 + 314)*354 = 314
スター幅は、グリッドの幅が固定でない場合に使用するのが最適です。グリッドのサイズが変更されると、列は星の幅で指定されたとおりに比例して拡大縮小します。あなたのケースでは、グリッドの幅は固定されており、固定幅の列を簡単に使用することができました。
もし、2番目の列が最初の列の2倍の幅で、3番目の列が最初の列の3倍の幅であるレイアウトを望むなら、この定義が必要です。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
グリッドの総幅が300の場合、列の幅は50、100、150となります。グリッドの合計幅が600であれば、列の幅は100、200、300になります。といった具合です。
関連
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] WPFのStaticResourceとDynamicResourceの違いは何ですか?
-
[解決済み] Windows 8 ランタイム(WinRT / Windowsストアアプリ / Windows 10 ユニバーサルアプリ)とSilverlightやWPFの比較はどうですか?[クローズド]
-
[解決済み】Visual Studio 2015の追加デバッグオプションの無効化
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
-
[解決済み] ユーザーコントロールライブラリーとカスタムコントロールライブラリーの違いは何ですか?
-
[解決済み] WPF: グリッドに列/行のマージン/パディングを設定できますか?
-
[解決済み] WPFのキーボードショートカット
-
[解決済み] レンダリング時間やパフォーマンスの面で最も効率的なパネルはどのような順番になりますか?
-
[解決済み] WPF ListViewの選択範囲オフ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ラジオボタンをenumにバインドするには?
-
[解決済み] [Solved] StackPanelの子要素をスペースアウトさせるには?
-
[解決済み] DataTrigger where value is NOT null?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] スタックパネルでアイテムを整列させる?
-
[解決済み] WPF: スクロールバー付きItemsControl (ScrollViewer)
-
[解決済み] レンダリング時間やパフォーマンスの面で最も効率的なパネルはどのような順番になりますか?
-
[解決済み] WPF ListViewの選択範囲オフ
-
[解決済み] WPFウィンドウのハンドルを検索する
-
[解決済み] ViewModelLocatorとは何ですか?また、DataTemplatesと比較した場合の長所と短所は何ですか?