Podczas definiowania kolumny w siatce WPF można ustawić szerokość na jedną z trzech możliwych wartości:
- Stała szerokość,
Auto
- kolumna stanie się tak szeroka, jak to konieczne, aby pasowała do jej elementów podrzędnych, lub
*
(gwiazdka) zajmuje pozostałą przestrzeń
*
Jest poprzedzony numerem (domyślnie jest 1, jeśli liczba nie jest określona). Dostępna przestrzeń jest dzielona między kolumny oznaczone gwiazdką proporcjonalnie do numeru prefiksu.
Jeśli masz tę definicję
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
Pierwsza kolumna otrzyma 7% całkowitej dostępnej przestrzeni, a druga kolumna - 93%. Z drugiej strony, gdybyś miał taką definicję:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
Pierwsza kolumna otrzyma 1/3, a druga 2/3 dostępnego miejsca.
W konkretnym przypadku, w którym szerokość siatki wynosi 354, a proporcje dwóch kolumn wynoszą 40 i 314, otrzymasz następujące szerokości kolumn:
Szerokość pierwszej kolumny = 40 / (40 + 314) * 354 = 40
Druga szerokość ziarna = 314 / (40 + 314) * 354 = 314
Szerokość gwiazdy jest najlepiej używana, gdy szerokość siatki nie jest ustalona. Gdy rozmiar siatki zostanie zmieniony, kolumny zostaną skalowane proporcjonalnie zgodnie z szerokością gwiazd. W twoim przypadku szerokość siatki jest stała i równie łatwo możesz użyć kolumn o stałej szerokości.
Jeśli chcesz mieć układ, w którym druga kolumna ma podwójną szerokość pierwszej, a trzecia kolumna jest trzykrotnie większa niż pierwsza, potrzebujesz tej definicji:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
Jeśli całkowita szerokość siatki wynosi 300, otrzymasz kolumny o szerokości 50, 100 i 150. Jeśli całkowita szerokość siatki wynosi 600, otrzymasz kolumny o szerokości 100, 200 i 300. I tak dalej.