我有一个WPF窗口,其中包含一个花式图像,大约有200个控件(从按钮派生),所有这些都使用我的5个模板之一(路径,阴影效果等).同意,这是一个沉重的窗口.我可以忍受这一点.
我的问题来自调整窗口大小.最大化/恢复大约需要1-2秒,但手动拖动左下角会导致系统挂起约5-10秒.在该延迟中,窗口为黑色并包含部分剩余部分,直到显示最终结果.它看起来业余和说,我不能忍受.
远程连接:使用远程帐户,我发现窗口调整大小总是需要1-2秒,但在拖动窗口边框时不会绘制"中间"阶段.结果像我期望的那样快活.
我的结论是:调整大小期间的重绘是瓶颈.
不可避免的问题是:如何在重新调整大小之前阻止重绘窗口?
提前感谢任何想法......
我们开发了一个MFC应用程序,其中主窗口是在DLL中实现的.为了对其进行修改,我们正在考虑将其更改为WPF应用程序,其中"旧"本机窗口在Wpf窗口中被重新托管.到现在为止还挺好.
但是,我们的旧MFC应用程序在应用程序级别捕获了一些消息(例如:防止鼠标单击或键盘输入).要重新托管WPF应用程序中的MFC窗口,我们需要一种方法从WPF应用程序中捕获这些窗口,并要求旧的MFC窗口预翻译它们......
这有可能吗?
我想在HwndHost中重新托管MFC窗口,然后添加一个消息钩子.我的桥接CLR-DLL中的代码看起来像这样(并没有实现我想要的):
MyHwndHost ^handle = gcnew MyHwndHost(pContentWnd);
handle->MessageHook += gcnew HwndSourceHook(&CVSimCoreNat::ControlMsgFilter);
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?