【问题标题】:Resizing issue with ListItem in WPF ListBox during resizing调整大小期间 WPF ListBox 中 ListItem 的大小调整问题
【发布时间】:2012-07-26 22:19:15
【问题描述】:

我正在尝试使用 WPF 中的列表框呈现一种 UI 的活动提要。 listBox 在调整窗口大小时完美呈现并调整自身大小。但是,内部项目并没有按应有的方式包装其内容。因此,我将内部 Grid 的宽度设置为 listBox 的 ActualWidth。这是我的 XAML 和一些屏幕截图,用于解释我想要实现的目标。

<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

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    listBox 上的属性 ScrollViewer.Horizo​​ntalScrollBarVisibility 应该被禁用而不是隐藏。

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 2011-05-18
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多