Tôi gặp sự cố với trình tạo hình ảnh đẩy chế độ xem danh sách của tôi ra khỏi chế độ xem trong kết hợp này. Các bước để tạo:WPF listview/gridsplitter/scrollviewer thay đổi kích thước vấn đề
- chương trình bắt đầu, kéo kích thước cửa sổ lớn
- Kéo splitter đỏ tất cả các cách còn lại để hạn chế tối đa các cột màu xanh
- Mở rộng cả hai cột ListView cho đến khi họ nằm ngoài khung nhìn và ngang cuộn xuất hiện
- Kéo kích thước cửa sổ nhỏ hơn một lần nữa
Đối với tôi, điều này từ từ đẩy ListView bên ngoài cửa sổ. Lưu ý ScrollViewer thực sự đang giảm kích thước với Window, nhưng không phải ở cùng tốc độ và từ từ đi ra khỏi tầm nhìn. Khi trình thu phóng bắt đầu trượt khỏi chế độ xem, trình tách không thể được sử dụng nữa!
Rất kỳ lạ, nếu tôi không giảm thiểu bảng điều khiển bên trái trước, tôi không nhận được hành vi này!
Điều gì sẽ khắc phục vấn đề này?
<Window x:Class="LayoutTest3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="600" Width="800" MinHeight="600" MinWidth="800" >
<Window.Resources>
<XmlDataProvider XPath="/Celebrities/Celebrity" x:Key="celebs">
<x:XData>
<Celebrities xmlns="">
<Celebrity Name="Jimmy">
<LastName>Page</LastName>
</Celebrity>
<Celebrity Name="Johnny">
<LastName>Depp</LastName>
</Celebrity>
<Celebrity Name="Britney">
<LastName>Spears</LastName>
</Celebrity>
</Celebrities>
</x:XData>
</XmlDataProvider>
<DataTemplate x:Key="NameTemplate">
<TextBlock Text="{Binding [email protected]}" />
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" MinWidth="400" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="Blue" />
<GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Center" ResizeBehavior="PreviousAndNext" VerticalAlignment="Stretch" Background="Red" />
<Border Grid.Column="2" Background="Green">
<ListView ItemsSource="{Binding Source={StaticResource celebs}}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name" CellTemplate="{StaticResource NameTemplate}" Width="150" />
<GridViewColumn Header="LastName" DisplayMemberBinding="{Binding XPath=LastName}" />
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Border>
</Grid>
</Window>
Tôi đã thực hiện một sai lầm trong câu trả lời của mình, thực sự là kích thước ngôi sao được giữ lại, 'cột Tự động định cỡ được thay đổi thành giá trị cụ thể. Ngoài ra tôi không biết phải làm gì về hành vi này vì vậy nó không phải là một câu trả lời tốt anyway. Nhưng bạn có cần tạo lưới phụ này không? Có phải một cột khác trong lưới chính sẽ làm cho thiết bị mở rộng phù hợp không? –
Câu hỏi đã chỉnh sửa để xóa mọi thứ trừ các yếu tố cần thiết. – DaveO
Tôi có vẻ không repro điều này, bạn đang nhắm mục tiêu phiên bản WPF nào? – CodeNaked