C# 由于布局影响,打开WPF窗口速度较慢

C# 由于布局影响,打开WPF窗口速度较慢,c#,wpf,performance,xaml,layout,C#,Wpf,Performance,Xaml,Layout,我对wpf有问题。问题是我的窗口,它在网格中使用了一些auto和*列,打开速度非常慢。我已经使用VisualStudio调试器调查了问题所在,并在布局部分找到了它。信息是: 对XAML可视化树进行了更改,要求计算所有受影响元素的大小和/或位置 以下是调试器的屏幕截图: 检测布局的确切问题的最佳方法是什么?还是有一些我可以遵循的一般规则 非常感谢,我以前没有在wpf中遇到过这种行为,即使是在大用户控件/窗口中 编辑 我不使用任何变换动画来旋转控件。一般来说,这是一扇非常平的窗户。作为补充信息,在

我对wpf有问题。问题是我的窗口,它在
网格中使用了一些
auto
*
列,打开速度非常慢。我已经使用VisualStudio调试器调查了问题所在,并在布局部分找到了它。信息是:

对XAML可视化树进行了更改,要求计算所有受影响元素的大小和/或位置

以下是调试器的屏幕截图:

检测布局的确切问题的最佳方法是什么?还是有一些我可以遵循的一般规则

非常感谢,我以前没有在wpf中遇到过这种行为,即使是在大用户控件/窗口中

编辑 我不使用任何变换动画来旋转控件。一般来说,这是一扇非常平的窗户。作为补充信息,在窗口中滚动
GridView
s的速度也非常慢。

在我的脑海中(并重复一些注释):

  • 您是否使用嵌套的
    IsSharedSizeScope
    ?这可能会导致级联布局更新
  • 您是否已关闭虚拟化并在网格中有许多项?这可能会导致性能缓慢和混乱
  • 尝试通过删除一些内容直到它起作用来隔离问题(或者删除很多内容并添加一些内容直到问题重新出现)
  • 在此处发布您的代码,以便我们更好地帮助您

    • 我也有同样的问题。原因是在XAML文件的ListView中意外关闭了虚拟化。可能是从web复制/粘贴。从虚假到真实的转变创造了魔法

      VirtualizingPanel.IsVirtualizing="True" 
      

      您是否使用昂贵的
      layoututtransform
      动画而不是
      RenderTranform
      ?感谢您的评论。我只使用WPF默认行为,没有指定
      LayoutTransform
      RenderTranform.
      在布局开始花费这么多时间的时候,到底发生了什么?您是否使用非虚拟化容器(并开始填充)?您是否将数千个控件添加到一些
      网格
      ?请看问题,这应该是有帮助的。有一种尝试和错误的方法。加载一个空白窗口以获得基线,然后慢慢地将控件逐个添加到窗口中以查看差异。在网格上为高度和宽度设置一个固定数字也是一件值得尝试的事情。最终,你将能够得到你的答案,是什么导致了这个问题problem@BendEg如果我的*连接不正确,我会遇到问题,暂时用固定尺寸替换它们,看看这是否有助于隔离问题。