[英]Listbox horizontal scroll doesn't wrap the whole textblock
我有一個帶有文本塊(作為 ItemTemplate)的 ListBox,它可以包含很長的文本,所以我設置了水平滾動,但即使這樣做,在文本塊內我也沒有整個文本,只有當我也設置文字的換行:
<ListBox ItemsSource="{Binding ListOfText, Mode=OneWay}"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.CanContentScroll="False">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"
HorizontalAlignment="Left"
VerticalAlignment="Top" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
所以設置 TextBlock 的包裝
TextWrapping="Wrap"
修復了這個問題,但我不希望 TextBlock 換行多行,我想要一行,如果我想看到文本的結尾只滾動到結尾(水平)。 它的行為就像水平滾動將顯示最大數量的像素,我認為情況並非如此。
而不是 TextBlock 添加一個 Grid 與 2 列。 將第二列的寬度指定為 1。將 TextBlock 放在第 0 列的網格內。現在它將換行。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="1" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Text}" TextWrapping="Wrap" /> </Grid>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.