Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# Winforms WPF互操作-WPF控件呈现为非活动状态_C#_.net_Wpf - Fatal编程技术网

C# Winforms WPF互操作-WPF控件呈现为非活动状态

C# Winforms WPF互操作-WPF控件呈现为非活动状态,c#,.net,wpf,C#,.net,Wpf,关于wpf控件的绘制,我也有类似的问题 我处理的应用程序是一个相当大的Windows窗体线程应用程序,在整个应用程序中有几个wpf用户控件。问题发生在应用程序的插件中,在第三线程C++库上调用一个单独的线程,WndProc被重写以从第三方库获得进度更新。我还没有确定导致问题的确切场景,但与上面提到的问题类似,在几次运行之后,wpf控件无法绘制和更新 设置elementhosts的宽度确实解决了大多数控件的绘制问题,但在此之后,应用程序中的所有wpf控件似乎都变得“无响应”—视觉上。。。进度条无法

关于wpf控件的绘制,我也有类似的问题

我处理的应用程序是一个相当大的Windows窗体线程应用程序,在整个应用程序中有几个wpf用户控件。问题发生在应用程序的插件中,在第三线程C++库上调用一个单独的线程,WndProc被重写以从第三方库获得进度更新。我还没有确定导致问题的确切场景,但与上面提到的问题类似,在几次运行之后,wpf控件无法绘制和更新

设置elementhosts的宽度确实解决了大多数控件的绘制问题,但在此之后,应用程序中的所有wpf控件似乎都变得“无响应”—视觉上。。。进度条无法显示进度(尽管值确实发生了变化),滚动条没有响应,在listview中选择一个项目不会高亮显示它(它在调整大小后会高亮显示,并且实际上会被选中-您可以看到它已被选中)。TreeView在调整大小后不会绘制,它只显示树视图应该位于的黑色背景(尽管当我单击树视图中应该位于的项目时,事件确实会触发)

我知道我应该首先找出导致这种情况的问题的根源(它的形成相当随机,很难捕捉)-尽管在WndProc方法中设置断点似乎确实会导致它在常规基础上失败

我所希望的是一种在整个应用程序中“重新激活”或刷新所有其他控件的方法。。。我是一名中级wpf、c#开发人员,对后台发生的消息和事件还不太了解,无法有效地使用它们。。。我的想法是,告诉wpf重画的某些事件或消息必须被破坏或中断,或者其他什么-我如何确定什么是破坏的,并可能重新激活它

任何建议都将不胜感激


谢谢

可能是由于WndProc覆盖,导致WPF控制图渲染的事件从未被处理


由于您正在与WinForms交互,因此可以通过调用
Application.DoEvents()来强制处理事件某处。也许在你更新进度条之后。

我设法缩小了问题的范围。自定义WPF进度条已从WndProc方法重复更新,删除此更新后,其他WPF控件不会出现问题。。。我通过删除有问题的wpf控件并放入Windows窗体控件解决了这个问题。然而,它并没有解决问题发生的原因以及可以采取什么措施来防止它的问题。。。我将做进一步的测试和测试应用程序,以尝试并确定这一点。