<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<c:SearchTextBox Grid.ColumnSpan="2" .../>
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1">
<ListBox
ItemsSource="{Binding Categories}"
IsSynchronizedWithCurrentItem="True"
... />
</ScrollViewer>
<!-- Here is what I'm talking about:-->
<ListBox ItemsSource="{Binding Products}"
IsSynchronizedWithCurrentItem="True" Grid.Column="1" Grid.Row="1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Điều tôi muốn là các mục trong cột phải được đặt ra để lấp đầy chiều rộng cửa sổ, và sau đó tạo một dòng mới , đó chính xác là những gì mà WrapPanel được tạo ra.
Vấn đề là, WrapPanel đưa ra các mục chỉ trong một dòng hiển thị thanh cuộn ngang bên dưới trong khi tất cả các mục được 'ẩn' ở phía bên phải vượt quá kích thước của cửa sổ.WrapPanel đưa ra các mục trong một đường ngang dài (hiển thị thanh cuộn) thay vì gói các dòng
Làm cách nào để ngăn chặn điều đó?
điều gì sẽ xảy ra nếu bạn xóa trình xem scroller? các mục vẫn mở rộng sang phải với một cuộn ngang? – dcarneiro
@Daniel bạn đã cho tôi sai. Các ScrollViewer kết thúc tốt đẹp ListBox đầu tiên có 2 ListBoxes đại diện cho một kịch bản chi tiết tổng thể. Vấn đề là với ListBox thứ 2 sử dụng WrapPanel như một ItemsPanelTemplate của nó. – Shimmy