Tôi gặp phải vấn đề lạ ...
Có vẻ như thay đổi kích thước cột của Grid bằng cách sử dụng tính năng vô hiệu GridSplitter (hoặc tắt kích hoạt) trình kích hoạt được xác định trên cột của Grid.GridSplitter ghi đè trình kích hoạt kiểu của ColumnDefinition?
Đây là thiết lập của tôi:
Một Lưới có 3 cột, được xác định như sau:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Style>
<Style>
<Setter Property="ColumnDefinition.Width" Value="Auto"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OpenItemViewModels.Count}" Value="0">
<Setter Property="ColumnDefinition.Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Style>
<Style>
<Setter Property="ColumnDefinition.Width" Value="4*"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OpenItemViewModels.Count}" Value="0">
<Setter Property="ColumnDefinition.Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
</Grid.ColumnDefinitions>
Hi vọng là khi không có vật phẩm chiếm ItemsSource cho sự kiểm soát trong thứ ba cột , 0 chiều rộng sẽ được gán cho cột thứ hai và thứ ba (lưu trữ GridSplitter và điều khiển các mục phụ, tương ứng).
Điều này hoạt động tốt miễn là tôi không chạm vào Bộ tách (khi tất cả các tab trong điều khiển phụ được đóng, chỉ cột đầu tiên vẫn hiển thị).
Các vấn đề bắt đầu nếu tôi di chuyển bộ tách, do đó có hiệu quả thay đổi tỷ lệ giữa các cột ## 0 và 2. Trong trường hợp này, chiều rộng của các cột này không được đặt lại khi tất cả các mục trong điều khiển bên phải được đóng.
Tôi nghi ngờ điều này có liên quan đến GridSplitter "ghi đè" các định nghĩa của tôi trong XAML.
Ai đó có thể vui lòng xác nhận/bác bỏ lý thuyết này và đề xuất cách khắc phục sự cố không?
tuyệt vời. Tôi đã đấu tranh 2 ngày để giải quyết một điều tương tự, và bằng cách sử dụng giải pháp này nó đã cho tôi một giờ để thích ứng với xaml của tôi, chỉ với hàng. Cảm ơn nhiều! – XMight
@Alex Làm thế nào để chấp nhận điều này như một câu trả lời? – Andre