ListBox中的TextBlock不会换行

时间:2013-09-12 12:34:33

标签: wpf xaml listbox

我有一个带有2个TextBlock的ListBox:

<ListBox Name="TransactionList" Margin="25,0,12,12" Height="362" VerticalAlignment="Bottom" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.Row="1">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Margin="0,0,0,20">
                <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" Height="146" />
                 <TextBlock Text="{Binding Description}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

当我运行应用程序时,TextBlocks不会换行;我该如何解决?

3 个答案:

答案 0 :(得分:3)

将ListBox放在ScrollViewer中,并将列表框上的附加属性ScrollViewer.Horizo​​ntalScrollBarVisibility设置为disabled。然后文本将被包装在窗口大小适合的任何大小。

<ScrollViewer>
     <ListBox HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <!-- Your ItemTemplate -->
    </ListBox>
</ScrollViewer>

答案 1 :(得分:1)

文本块没有设置任何宽度。请设置为文本块(例如10),它应该可以正常工作。

答案 2 :(得分:0)

你希望它在什么时候包裹?您必须通过在Width上设置TextBlock来告诉它。您还可以限制Width设置父级TextBlock属性的Width,但在您的情况下,将其设置在StackPanel上不会产生此效果,因为它不会不要调整其内容。