<ListBox x:Name="lbMailShots" Grid.Row="1" Width="300" SelectionChanged="lbMailShots_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition ></RowDefinition> <RowDefinition ></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition x:Name="cdMailShot"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Text="{Binding Path=Subject}" HorizontalAlignment="Left" FontSize="14" Padding="0, 10, 0 0" TextWrapping="NoWrap"></TextBlock> <TextBlock Grid.Row="1" Text="{Binding Path=BodyShot}" FontSize="12" Foreground="#777" Padding="0, 0,0,10" TextWrapping="NoWrap"></TextBlock> </Grid> </DataTemplate> </ListBox.ItemTemplate>
其实你是想让 主题 宽度自适应, 正文显示不全就显示... 是吧。 因为你主题可能很长,超出父级容器后水平滚动条还是会出现的,没有更好的办法,窗口的宽度也是有限的。 除非你给它一个最大宽度,主题和正文超出后都显示...这样水平滚动条就不用出来了。你试试。
不是,标题和正文都要显示... 如果超出的话。
@Eysa: 那就没问题,把ListBox的width去掉就能自适应了,我觉得还是给个minwidth
@Darren.Dai: 去掉Width里面的TextBlock如果文字多的话会水平撑开的,效果如图。
@Eysa: List box 加一个属性 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
@Darren.Dai: 为了避免你问个没头 我还是给你贴代码吧。
<ListBox x:Name="lbMailShots" Grid.Row="1" Width="300" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition x:Name="cdMailShot"/> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Text="{Binding Path=Subject}" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" FontSize="14" Padding="0, 10, 0 0" TextWrapping="NoWrap"/> <TextBlock Grid.Row="1" Text="{Binding Path=BodyShot}" FontSize="12" Foreground="#777" Padding="0, 0,0,10" TextTrimming="CharacterEllipsis" TextWrapping="NoWrap"/> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
@Eysa: 另外提醒一下 BodyShot 写错了单词啦
@Darren.Dai: 嗯嗯,晚上回去试试,多谢仁兄相助。
我记得有个
gridview里面有属性,可以设置是否省略显示内容,你可以参考一下