0

我在 ListView(itemspanel 模板)中使用 wrappanel(WPF 4.5)。当我调整窗口大小时,wrappanel 会正确重绘自身。

当我最大化它时,它不会重绘自己。

下面是代码(XAML)

 <ListView ItemsSource="{Binding Items}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="3" Width="200" Height="200">
                        <TextBlock Text="{Binding}"></TextBlock>
                        <Image Source="{Binding}"></Image>
                    </StackPanel>
                </DataTemplate>

            </ListView.ItemTemplate>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel HorizontalAlignment="Left" VerticalAlignment="Top" Width="{Binding Path=Width, RelativeSource={RelativeSource  AncestorType=Window}}" ></WrapPanel>   
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>    
        </ListView>

下面是
正常截图
在此处输入图像描述

调整大小(一切正常) 在此处输入图像描述

最大化(问题,看红色曲线点,listview/wrappanel 应该重绘并用后续示例图像填充)
在此处输入图像描述

4

1 回答 1

3

问题是您已将WidthWrap 面板绑定到窗口的宽度,该宽度将始终保持您在 XAML 中指定的值。

将 Width 替换为 ActualWidth,它始终使用当前窗口宽度进行更新。

<WrapPanel HorizontalAlignment="Left" VerticalAlignment="Top" 
           Width="{Binding Path=ActualWidth,
                   RelativeSource={RelativeSource  AncestorType=Window}}"/>
于 2014-07-12T16:51:43.483 回答