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

时间:2012-02-21 19:48:51

标签: wpf grid resize redraw

WPF网格容器,其中包含多个行/列,并在部分中加载了usercontrol。

根据单击按钮,通过设置列/行宽度(从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时,它会再次调整(并闪烁)。

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

1 个答案:

答案 0 :(得分:0)

我认为有BeginInit()和EndInit()方法,应该做你想要的(防止重绘),但根据我的经验,他们没有真正工作(也许我没有错误地使用它们)。

我不知道有任何其他方法可以防止重绘,也许更多WPF专家的人可能会有更多的亮点......