I'm hosting an EDrawSoft OfficeOCX in a WindowsFormsHost. (MVVM, C#, .Net 4.0) The control fills a tab in a tab control in a Telerik RadDocPanel.
Everything is working very well, until someone tries to open a damaged Office document which throws an error and seems to corrupt the OfficeOCX control.
I've found that re-initializeing the OfficeOCX control gets it working again, except that the WindowsFormsHost no longer fills the tab. Simply resizing the application fixes it up again.
I've tried calling Refresh on the OfficeOCX control which didn't work, but it's probably not the control that needs to be refreshed.
The control is being manipulated in a PropertyChangedCallback for a dependency property. MSDN suggests calling WindowsFormsHost.InvalidateVisual() but that didn't work either.
My next attempt will be to try to call a method on the Telerik RadDockPanel to force the repaint...however I can't figure out how.
I have a resize event in the usercontrol that does nothing but allows me to set a break in it. When I resize the app, which fixes the docking problem, this event gets fired and the call stack shows it being called (through some external code) from:
Telerik.Windows.Controls.dll!Telerik.Windows.Controls.RadDockPanel.ArrangeOverride(System.Windows.Size finalSize)
Is there a way I can force this to happen from code?
Thanks