2012-02-22 53 views
0

我一直在寻找棱镜来承载一个旧的Winforms应用程序。这是我们从我们公司的Winforms - > WPF迁移中使用的。但是,我遇到了一些问题。在WPF主机中刷新winforms控件的问题?

总之我有一个项目概述如下所示:

项目大纲

DataManager的WPF项目

MEF模块上初始化注册与区域经理和引用旧的WinForms视图项目 - 视图 - 其中包含一个WPF UserControl并具有指向旧的winforms项目的主视图的WindowsFormsHost。

DataManager的WinForms项目 包含的旧模块需要与意见

主机 被intialized包含外壳和引导程序 - 壳牌在其中的WPF的DataManager查看被注入到主区域。

所以我遇到的问题如下。旧的Winforms视图通过新的WPF视图在WPF shell中正确加载。但是,此后添加到视图的任何内容都不会更新。我试着在屏幕上添加一些按钮。我也尝试清除所有的控件。

环顾这里,我接受了听取Size Changed事件并在WPFHost上调用Child.Refresh的建议,但这仍然无效。

这是一个WPF具体问题像这里讨论:Does WPF refresh drawing similar to Windows Forms?

或者是它与不在区域经理正确地刷新视图的问题吗? WPF, Prism v2, Region in a modal dialog, add region in code behind

这两者似乎都不起作用!

也许我需要在winforms控件本身中重绘或重绘? 编辑:在更新UI后调用Refresh()并不能解决问题。

编辑2:在旧的Winforms(.net 2.0)应用程序中也尝试过这种方法,它显示正确!

+0

好吧,我添加了一个标准的winforms项目,而不是我使用的遗留项目,它的工作。它可能会遗漏旧式winforms项目初始化中的一些步骤。 – oliveromahony 2012-02-24 00:52:57

回答

0

好吧,我添加了一个标准的winforms项目,而不是我使用的遗留项目,它的工作。它可能会遗漏旧式winforms项目初始化中的一些步骤。