【问题标题】:Prevent ListView from Resizing Window When Adding Items WPF/C#添加项目时防止 ListView 调整窗口大小 WPF/C#
【发布时间】:2010-06-26 22:48:48
【问题描述】:

我在 WPF 中有一个 ListView,每当我向其中添加项目时,它都会调整整个应用程序窗口的大小。我将 ListView 大小绑定到它所在的网格,该网格绑定到窗口大小。因此,当用户调整窗口大小时,ListView 会增长。问题是当我向 ListView 添加项目时,它会自动拉伸以尝试适应新内容,这反过来又会拉伸整个窗口的大小。

有没有办法防止这种行为发生?

【问题讨论】:

    标签: c# wpf listview


    【解决方案1】:

    将窗口的 SizeToContent 更改为 Manual 或 Width(不应有 Height)。这将阻止窗口本身根据内容自动更改其高度。

    【讨论】:

      【解决方案2】:

      您想将VerticalAlignment 属性设置为“Stretch”。如有必要,也可以在父控件中,依此类推,直到您在 Window 控件中。

      需要注意的是,如果向上的控件之一是StackPanel,它将不会拉伸以适应其内容,但始终会扩展以适应其内容。所以远离StackPanels,使用Stretch,就可以了!

      也删除您的绑定,它们很可能是 TwoWay:所以列表视图增加​​其大小正在使您的窗口增长!

      希望有帮助!

      【讨论】:

        【解决方案3】:

        您可以使用以下代码。

        首先获取listview onload的值。然后将其存储在一个变量中,然后在 ColumnWidthChanging 事件属性中执行此代码,如下所示:

             e.cancel = true;
             e.NewWidth = // the declared variable in which you store the list view with value in the onload function of the form
        
         int a = 100;
            e.cancel =true;
            e.NewWidth = a;
        

        【讨论】:

          【解决方案4】:

          您是否尝试过设置 MaxWidth 属性?

          【讨论】:

          • 我不想在上面设置最大宽度或高度,因为我确实希望在有人调整窗口大小时调整它的大小。我只是不希望它在将内容添加到 ListView 时自动调整大小。
          • 将 ListViewItems MaxWidth 绑定到 ListView 的 MaxWidth 上?
          • 我这里没有开发环境,但大致如下...
          【解决方案5】:

          您可以在 xaml 中为您的 ListView 设置 MaxHeight 属性,不是吗?

          【讨论】:

          • 我不想在上面设置最大宽度或高度,因为我确实希望在有人调整窗口大小时调整它的大小。我只是不希望它在将内容添加到 ListView 时自动调整大小。
          【解决方案6】:

          10 年后...

          1. ListView 放在一个灵活的控件中,该控件会随着您调整窗口大小而调整大小,例如Border。这样,Window 调整大小时,Border 调整大小,Border 调整大小时,ListView 调整大小。

          2. ListViewMaxHeight 属性绑定到BorderActualHeight 属性。这样,ListView 无法调整 Border 的大小。

          有关如何实现这一点的详细信息,请参阅此答案(对于一个实际上重复的问题,也有大约 10 年的历史):https://stackoverflow.com/a/68498797/773113

          【讨论】:

            猜你喜欢
            • 2011-01-22
            • 1970-01-01
            • 1970-01-01
            • 2018-08-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多