我有一个包含ListBox的TextBlocks。
有时,TextBlock的内容太长,我希望这个条目的高度达到双倍或三倍,以适应文本。
我试过TextWrapping="Wrap“,但它不起作用。每一个TextBlock仍然只是一条线的高度。
有什么简单的方法可以解决XAML中的问题吗?谢谢。
*附加信息:我试图简化问题,但也许完整的场景更好。
这是我的XAML:
<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock MinWidth="40" TextAlignment="Right" Text = "{Binding ProductPrice}" />
<TextBlock Text = "{Binding ProductName}" TextWrapping="Wrap" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>发布于 2011-10-13 21:24:24
您正在使用StackPanel。尝试使用DockPanel
<DockPanel>
<TextBlock DockPanel.Dock="Left" MinWidth ="40" TextAlignment="Right" Text = "11.12" />
<TextBlock Text = "{Binding LongText}" DockPanel.Dock="Right" TextWrapping="Wrap" />
</DockPanel>例如,:

发布于 2011-10-13 20:22:28
禁用列表框水平scrollViewer。这样,textBlock将被迫包装。
XAML:
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TextBlock TextWrapping="Wrap"/>
</ListBox>举例结果:

编辑:
从XAML中,您还补充说,我确信问题在StackPanel中。例如,尝试用Grid替换它:
<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock MinWidth="40" TextAlignment="Right" Text = "{Binding ProductPrice}" />
<TextBlock Grid.Column="1" Text = "{Binding ProductName}" TextWrapping="Wrap" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>StackPanel不限制内容大小,因此textBlock不知道空格结束的位置,包装也不会发生。
发布于 2011-10-13 20:12:59
这能帮你做到这一点。不要调整TextBlock的大小,只需调整滚动查看器的大小,因为文本块需要是可变的,所以一旦超出ScrollViewer大小,ScrollViewer就会应用Scrollbar。
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<TextBlock/>
</ScrollViewer>对于ListBoxItem
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.Items>
<TextBlock Text="{Binding LongText}" TextWrapping="Wrap"/>
</ListBox.Items>
</ListBox>https://stackoverflow.com/questions/7759859
复制相似问题