Khi bạn xác định một cột trong lưới WPF, bạn có thể đặt chiều rộng thành một trong ba giá trị có thể có:
- Chiều rộng cố định,
Auto
- cột sẽ rộng đến mức cần thiết để vừa với các cột con của nó, hoặc
*
(dấu sao) chiếm bất kỳ dung lượng trống còn lại nào
Tiền *
tố là một số (mặc định là 1 nếu không có số nào được chỉ định). Khoảng trống có sẵn được chia cho các cột có gắn dấu sao tương ứng với số tiền tố.
Nếu bạn có định nghĩa này
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
Cột đầu tiên sẽ nhận được 7% tổng không gian có sẵn và cột thứ hai sẽ nhận được 93%. Mặt khác, nếu bạn có định nghĩa này:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
Cột đầu tiên sẽ chiếm 1/3 và 2/3 không gian có sẵn.
Trong trường hợp cụ thể của bạn khi chiều rộng của lưới là 354 và tỷ lệ của hai cột là 40 và 314, bạn sẽ nhận được các chiều rộng cột sau:
Chiều rộng cột đầu tiên = 40 / (40 + 314) * 354 = 40
Chiều rộng coulmn thứ hai = 314 / (40 + 314) * 354 = 314
Chiều rộng hình sao được sử dụng tốt nhất khi chiều rộng của lưới không cố định. Khi lưới được thay đổi kích thước, các cột sau đó sẽ chia tỷ lệ theo tỷ lệ được chỉ định bởi độ rộng dấu sao. Trong trường hợp của bạn, chiều rộng của lưới là cố định và bạn có thể dễ dàng sử dụng các cột có chiều rộng cố định.
Nếu bạn muốn một bố cục trong đó cột thứ hai gấp đôi chiều rộng của cột đầu tiên và cột thứ ba gấp ba lần chiều rộng của cột đầu tiên, bạn cần định nghĩa sau:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
Nếu tổng chiều rộng của lưới là 300, bạn sẽ có chiều rộng cột là 50, 100 và 150. Nếu tổng chiều rộng của lưới là 600, bạn sẽ có chiều rộng cột 100, 200 và 300. Và cứ tiếp tục như vậy.