更改UserControl父级的快速方法

时间:2012-01-30 12:50:49

标签: c# wpf

在WPF应用中,我可以使用this等代码将UserControlContentControl移到另一个{<3}}:

myContentControl1.Content = null;
myContentControl2.Content = myUserControl;

问题是被移动的UserControl是一个相当沉重的(由很多较小的控件组成)。因此,上述操作需要花费大量时间,几乎与我最初加载UserControl时一样长。似乎UserControl中的每个元素都要通过处理移动到另一个ContentControl下。

是否有一个更有效且更快的方法 UserControl置于另一个父级(在我的情况下为ContentControl)作为其子级(每次都不需要UI线程处理所有元素)? (动态地,在代码隐藏中)

1 个答案:

答案 0 :(得分:2)

不要在两个ContentControl之间切换UserControl的内容,而是将UserControl放入Grid并切换Visibility Visible 。在显示当前数据的同时,在后台更新另一个不可见的数据。完成更新后,将控件的可见性从Hidden切换为Collapsed,反之亦然。不要使用Grid,因为这会强制新的布局周期。

将两者放在Row中而不指定Column或{{1}}会使它们彼此叠加。