Wpf 列表框数据模板文本溢出
我正在为列表框制作数据模板。其中一个数据绑定字段包含很长的描述,我不知道如何确保文本仅包装在列表框项的边缘。这是我的xaml代码Wpf 列表框数据模板文本溢出,wpf,xaml,Wpf,Xaml,我正在为列表框制作数据模板。其中一个数据绑定字段包含很长的描述,我不知道如何确保文本仅包装在列表框项的边缘。这是我的xaml代码 <ListBox x:Name="lstTest" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch"> <ListBox.ItemTemplate> <DataTemplate>
<ListBox x:Name="lstTest" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<Label Content="{Binding Path=Name}"></Label>
<TextBlock TextWrapping="Wrap" Text="{Binding Path=Description}"></TextBlock>
</StackPanel>
<DockPanel LastChildFill="True">
<Label Content="{Binding Path=AuctionDate}"></Label>
</DockPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我想问的是,这甚至是我试图实现的目标的正确结构吗?我希望日期在项目的右边。我希望名字在左上角,在名字下面我希望描述。我可以使描述固定大小,但我希望列表框项目与列表框一起正确调整大小
我将非常感谢您在这方面提供的任何帮助
谢谢大家! 您已经有了textwrapping设置,所以剩下的就是一个MaxWidth设置,非常快
MaxWidth="Numeric Value" should do it or a MaxWidth="{Binding YourTextBoxBlockName, Path=ActualWidth}"
如果你想喜欢它,你应该是金色的。希望这有帮助,祝你好运 您的问题在于StackPanel 将其拆下并用网格替换。这也是我悲伤的根源 我这样做是为了模仿你的情况,这对我很有用:
<Grid>
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding RecordID}" />
<TextBlock Grid.Column="1" Text="{Binding Description}" TextWrapping="Wrap" />
<TextBlock Grid.Colunm="2" Text="{Binding AuctionDate}" />
</Grid>
</ListBox.ItemTemplate>
</ListBox>
<Grid>
看这个。还有这个
祝你好运 我需要用列表框重新调整文本块的大小。。。如果我设置了MaxWidth,并且表单被最大化,那么内容就会太窄。我尝试了这个方法,但它不起作用MaxWidth={Binding Width,ElementName=lstTest}…MaxWidth=“{Binding ElementName=IstTest,Path=ActualWidth}”怎么样?这种方法起作用了,它确实使文本块成为列表框的宽度,但它将AuctionDate字段推开,使其不再可见。此外,当我最大化窗口时,它可以正常工作,但当我缩小窗口时,它不会调整项目大小,直到我尝试滚动?对我来说,这似乎是一个解决办法,而不是一个解决方案。。。但是谢谢你的帮助!
<Grid>
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding RecordID}" />
<TextBlock Grid.Column="1" Text="{Binding Description}" TextWrapping="Wrap" />
<TextBlock Grid.Colunm="2" Text="{Binding AuctionDate}" />
</Grid>
</ListBox.ItemTemplate>
</ListBox>
<Grid>