首页 > 解决方案 > WPF:根据窗口大小自动调整 ListView 宽度

问题描述

所以我ListView里面有这个TabControl

<TabControl>
    <TabItem Width="70" Height="70" Margin="0,0,0,0">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="10"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="10"/>
            </Grid.ColumnDefinitions>
        <Grid Grid.Column="1">
        <Grid Grid.Row="1">
             <Grid.RowDefinitions>
                 <RowDefinition Height="Auto"/>
                 <RowDefinition Height="*"/>
                 <RowDefinition Height="Auto"/>
             </Grid.RowDefinitions>
         <Grid Grid.Row="1">
                 <ListView>
                     ...    
                 </ListView>
         </Grid>
         <Grid>
         </Grid>
         </Grid>
     </TabItem>
 </TabControl>

我的窗口 ResizeMode 是CanResizeWithGrip,当我调整我的应用程序大小时,我希望我ListView根据我的Window宽度自动调整大小。

ListView HorizontalAlignment Stretch当我的应用程序宽度更改为 not 时,我尝试定义我的bu ListView

标签: wpflistviewwindow-resizeautoresize

解决方案


我相信由于您ListView嵌套在其他控件中,因此这些控件需要将其HorizontalAlignment设置为Stretch. 我现在正在打电话,所以当我回到家时我会在我的系统上试用你的 XAML,如果我发现其他东西是罪魁祸首,我会更新我的答案。

编辑:我已将您的代码复制到 VS 中,并为我正确拉伸。我没有任何内容要检查,但如果我设置

<TabControl>
    <TabItem Width="70" Height="70" Margin="0,0,0,0">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="10"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="10"/>
            </Grid.ColumnDefinitions>
            <Grid Grid.Column="1">
                <Grid Grid.Row="1">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid Grid.Row="1">
                        <ListView Background="Black">
                        </ListView>
                    </Grid>
                    </Grid>
                    </Grid>
                </Grid>
    </TabItem>
</TabControl>

我可以看到,当我调整窗口大小时,控件实际上正在拉伸。现在我不确定你遇到的问题是什么。你有机会发布更多细节吗?


推荐阅读