Dot-Net
WPF列錶框項目不自動換行
我
ListBox的其中有一個描述欄位,其中可能會很長。而不是有一個水平捲動條,我想把它換行。如果我設置它可以工作,MaxWidth但由於ListBox更改大小我不想硬編碼該值。最好的方法是什麼?
編輯:描述在
TextBlock.簡化的 XAML(刪除了不必要的東西,仍然顯示問題:
<ListBox BorderThickness="0" Padding="5" Name="lstTasks"> <ListBox.ItemsSource> <Binding Source="{StaticResource dataTasks}"/> </ListBox.ItemsSource> <ListBox.ItemTemplate> <DataTemplate> <Grid> <TextBlock Text="{Binding Path=RequestDescription}" TextTrimming="WordEllipsis" TextWrapping="Wrap" Height="60" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
嘗試強制 ListBoxItems 的寬度為 ListBox 的寬度:
<ListBox Name="lstTasks" BorderThickness="0" Padding="5" HorizontalContentAlignment="Stretch">您也可以嘗試禁用水平滾動:
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" ...>
一起使用包裝和修剪沒有任何意義。您應該使用其中之一的 texttrimming 或 textwrapping。它修剪它不包裹。
對於 textwrapping,Matt 的答案對於修剪是正確的,您應該定義width或maxwidth屬性值。
對於 SL 開發人員來說,它完全相同。