Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内存泄漏(?)在包含WPF scrollviewer的WPF面板上,并在其中托管WindowsFormsHost_C#_Wpf - Fatal编程技术网

C# 内存泄漏(?)在包含WPF scrollviewer的WPF面板上,并在其中托管WindowsFormsHost

C# 内存泄漏(?)在包含WPF scrollviewer的WPF面板上,并在其中托管WindowsFormsHost,c#,wpf,C#,Wpf,我的WPF面板包含一个WPF ScrollViewer,它反过来在WindowsFormsHost中托管各种WinForms用户控件。现在,有时,当我调整Scrollviewer(即WindowsFormsHost)的内部内容以使滚动条生效时,我会看到整个面板的调整性能出现严重滞后。说到这里,我注意到Panel_SizeChanged事件处理程序在这些延迟期间不断受到攻击(而当我没有遇到延迟时,它只受到1到2次攻击)。有人能告诉我问题出在哪里吗 我是否应该尝试将主WPF面板本身放入WPF scr

我的WPF面板包含一个WPF ScrollViewer,它反过来在WindowsFormsHost中托管各种WinForms用户控件。现在,有时,当我调整Scrollviewer(即WindowsFormsHost)的内部内容以使滚动条生效时,我会看到整个面板的调整性能出现严重滞后。说到这里,我注意到Panel_SizeChanged事件处理程序在这些延迟期间不断受到攻击(而当我没有遇到延迟时,它只受到1到2次攻击)。有人能告诉我问题出在哪里吗

我是否应该尝试将主WPF面板本身放入WPF scrollviewer中

public MyWPFPanel()
{
    this.Content = new ScrollViewer() { Content = new WindowsFormsHost() { Child = _grid, ClipToBounds = true, }, CanContentScroll = true, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto ,VerticalScrollBarVisibility = ScrollBarVisibility.Auto };
    AllowClose = false;
} 

大小更改处理程序中的代码是什么?有什么吗?忘了加东西了_上面代码中的网格是一个WinForms面板(WinForms用户控件的放置位置)。该面板的大小更改的处理方式如下:foreach(this.Controls中的var控件){if(控件是ControlContainer){(控件是ControlContainer){(控件是ControlContainer).AdjustPosAndSize(this.Width,this.Height);}没有递归调用。这可能是OnResize中的递归调用,控件的大小已调整,这可能会影响父级调整大小,从而再次引发SizeChanged。size changed处理程序中的代码是什么?有什么吗?忘了加东西了_上面代码中的网格是一个WinForms面板(WinForms用户控件的放置位置)。该面板的大小更改的处理方式如下:foreach(this.Controls中的var控件){if(控件是ControlContainer){(控件是ControlContainer){(控件是ControlContainer).AdjustPosAndSize(this.Width,this.Height);}没有递归调用。这可能是OnResize中的递归调用,控件的大小已调整,这可能会影响父级调整大小,从而再次引发SizeChanged。