调整网格行/列的大小时,防止重新绘制窗口



WPF网格容器,具有多行/列,在部分中加载了用户控件。

某些行/列可通过单击按钮设置"列/行宽度"(从0到125*或固定值)来展开/折叠。

简单示例代码:

    If colgrdFolder1.Width.Value Then
        Me.Width = Me.Width - colgrdFolder1.ActualHeight
        colgrdFolder1.Width = New GridLength(0)
    Else
        Me.Width = Me.Width + 150
        colgrdFolder1.Width = New GridLength(150)
    End If

这是有效的,但当父对象调整大小时,它会随着列/行的设置而闪烁。当父"宽度"首次增加时,您可以看到网格调整大小,然后当设置新的colWidth时,它会再次调整大小(并闪烁)。

在调整大小完成之前,是否没有冻结窗口/阻止重新绘制的属性/方法?

我认为有BeginInit()和EndInit(。

我不知道有什么其他方法可以防止重画,也许在WPF方面更专业的人可以提供更多的线索。。。

相关内容

最新更新