Trong ví dụ này cột đầu tiên nhận được 100 và 2 cột tiếp theo nhận được 50 cột, đó là hành vi mong đợi.Tại sao WPF Grid không chia sẻ không gian bằng nhau khi cột giữa có MinWidth?
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100" />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0" />
<Border Background="Yellow" Grid.Column="1" />
<Border Background="Blue" Grid.Column="2" />
</Grid>
Nếu tôi di chuyển MinWidth tới cột giữa ...
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition MinWidth="100" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0" />
<Border Background="Yellow" Grid.Column="1" />
<Border Background="Blue" Grid.Column="2" />
</Grid>
... sau đó cột đầu tiên được 33,3 và cột cuối cùng 66,6 mà có vẻ kỳ lạ. Không chắc chắn lý do tại sao điều này sẽ thay đổi hành vi của lưới điện. Tôi hy vọng các cột 0 và 2 sẽ nhận được 50 cột.
Cập nhật: Tôi hiểu lý do tại sao điều này xảy ra, nhưng đã tự hỏi nếu có ai nghĩ nó là một lỗi (đặc biệt là kể từ khi hành vi trong Silverlight là khác nhau)
Bóp cho câu trả lời trên twitter? Vâng, tôi đoán nó đã hoạt động. – Will
Hmmm. Tôi đang sử dụng C# 3.5 và cột màu đỏ của tôi là kích thước của cột màu xanh dương của bạn và cột màu xanh dương của tôi là kích thước của cột màu đỏ của bạn cho ví dụ thứ hai. – Crispy
@Chris yeah, nó đã thay đổi với 4.0. Tôi không thể tìm thấy bất cứ nơi nào các thay đổi đã được ghi nhận nên tôi đã mở một Connect. – Will