在调整大小的同时调整WPF ListBox中ListItem的大小问题

在调整大小的同时调整WPF ListBox中ListItem的大小问题

问题描述:

我想要使用WPF中的列表框来呈现UI的activity feed类型。当窗口被调整大小时,listBox是完美的渲染并调整自己的大小。然而,内在的东西并没有按照他们应该包装的内容。所以,我将内部网格的宽度设置为listBox的ActualWidth。这是我的XAML和一些截图,用于解释我想要达到的目标。在调整大小的同时调整WPF ListBox中ListItem的大小问题

<Grid x:Class="MyAddin.WPFControls" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:c="clr-namespace:MyAddin" 
     mc:Ignorable="d" Background="Transparent" 
     HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ShowGridLines="False" d:DesignHeight="221" d:DesignWidth="275"> 
<Grid.RowDefinitions> 
    <RowDefinition Height="Auto"/> 
    <RowDefinition Height="*"/> 
</Grid.RowDefinitions> 
<TextBlock HorizontalAlignment="Stretch" 
      IsManipulationEnabled="True" Grid.Row="0" 
      Height="20" Grid.ColumnSpan="5" TextAlignment="Right" Padding="0,0,5,0" Margin="0,5,0,0" FontSize="14" FontStyle="Normal" FontWeight="ExtraLight">Activity Feed</TextBlock> 
<ListBox Grid.Row="1" Name="listBox1" IsSynchronizedWithCurrentItem="True" 
     ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
     VerticalContentAlignment="Stretch" ItemContainerStyle="{StaticResource ContainerStyle}" 
     AlternationCount="2" HorizontalContentAlignment="Stretch"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid MaxWidth="{Binding ElementName=listBox1, Path=ActualWidth}" Height="40"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="34"/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 
        <Border Grid.Column="0"> 
         <Image Source="{Binding Path=AvatarURL}" Stretch="Fill" Width="32" Height="32" /> 
        </Border> 
        <StackPanel Grid.Column="1"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Path=FirstName }" TextBlock.FontWeight="Bold" 
            HorizontalAlignment="Left" /> 
         <TextBlock><Bold> - </Bold></TextBlock> 
          <TextBlock Text="{Binding Path=TS}" TextWrapping="Wrap" 
            TextTrimming="WordEllipsis" FontSize="9" Margin="0,2,0,0" FontWeight="ExtraLight" /> 
         </StackPanel> 
         <TextBlock Text="{Binding Path=Comment}" TextWrapping="Wrap" 
           TextTrimming="CharacterEllipsis" HorizontalAlignment="Stretch" 
           VerticalAlignment="Top" Padding="0,0,5,0"/> 
        </StackPanel> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

,它被渲染为图像1.如果我重新大小我的窗口,我希望他们在列表框中的内容被包裹。但是,当我调整窗口大小时,布局如图3所示。我需要帮助解决2个问题:

  1. 如何解决此调整大小问题。
  2. 即使评论是 包裹和修剪。最后没有显示椭圆。

PS:我的应用程序是一个Outlook地址。

Image1 Image3

在列表框属性ScrollViewer.Horizo​​ntalScrollBarVisibility被禁止的,而不是隐藏。