Tôi muốn thực hiện chức năng ListBox
như một Grid
. Mỗi khi một mục mới được thêm vào, nó sẽ trông giống như một GridRow
mới được thêm vào (với chiều cao của ngôi sao). Vì vậy, nếu có hai mục, mỗi người sẽ chiếm một nửa không gian sẵn có. Tại một số điểm hàng Grid
sẽ nhỏ hơn so với các mặt hàng MinHeight
tại thời điểm đó các Grid
sẽ mở rộng và một ScrollViewer chứa có thể đá trongLàm cách nào để tạo một ListBoxItem theo chiều dọc
. Bạn sẽ thấy hành vi này với một mạng lưới bên trong một ScrollViewer
. Tuy nhiên, tôi cần phải làm việc này với một số ListBox
vì vậy tôi chỉ có thể đặt ItemsSource
, tạo một DataTemplate
và tiếp tục.
Sự cố với mặc định ListBox
ItemsPanel
là nó sẽ không cho phép mục đầu tiên của tôi mở rộng để lấp đầy tất cả không gian có sẵn.
UPDATE: Dưới đây là đoạn code để làm cho nó làm việc:
<ListBox VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Width="Auto" Height="Auto">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"></UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Cảm ơn đã giúp, tôi không sử dụng lưới đồng nhất nhiều nên tôi chưa bao giờ nghĩ về nó. – Kelly