Ao definir uma coluna em uma grade WPF, você pode definir a largura para um dos três valores possíveis:
- Uma largura fixa,
Auto
- a coluna será tão larga quanto necessário para caber seus filhos, ou
*
(estrela) ocupar qualquer espaço restante disponível
O *
é prefixado por um número (o padrão é 1 se nenhum número for especificado). O espaço disponível é dividido entre as colunas com estrela em proporção ao número do prefixo.
Se você tem esta definição
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
A primeira coluna terá 7% do espaço total disponível e a segunda coluna receberá 93%. Por outro lado, se você tivesse esta definição:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
A primeira coluna obteria 1/3 e a segunda 2/3 do espaço disponível.
No seu caso específico, onde a largura da grade é 354 e as proporções das duas colunas são 40 e 314, você obtém as seguintes larguras de coluna:
Largura da primeira coluna = 40 / (40 + 314) * 354 = 40
Largura do segundo canal = 314 / (40 + 314) * 354 = 314
A largura da estrela é melhor usada quando a largura da grade não é fixa. Quando a grade é redimensionada, as colunas são dimensionadas proporcionalmente conforme especificado pela largura das estrelas. No seu caso, a largura da grade é fixa e você poderia facilmente ter usado colunas de largura fixa.
Se você deseja um layout onde a segunda coluna tem o dobro da largura da primeira e a terceira coluna tem o triplo da largura da primeira, você precisa desta definição:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
Se a largura total da grade é 300, você obtém larguras de coluna 50, 100 e 150. Se a largura total da grade é 600, você obtém larguras de coluna 100, 200 e 300. E assim por diante.