我的Excel AddIn是用C#,.NET 4.5.1编写的。安装插件后,Excel中会显示一个功能区选项卡(带有功能区按钮)。当我单击一个功能区按钮时,将弹出一个WPF窗口。 它工作正常一段时间。但是,在我多次单击功能区按钮并再次单击一个按钮后,没有任何显示。我检查了我的日志文件,看到Win32Exception。我不确定是什么导致这种情况以及如何解决这个问题。顺便说一句,我的插件曾经在我的电脑上正常工作,最近我升级到VS2013& .NET4.5.1。在过去,我使用的是VS2010 + .NET 4.0。我不确定它是否与此升级有关。
谢谢!
XLFunctionModel = new MainViewModel(XLApp, UnityContainer);
xlfuncWindow = new XLFuncWindow();
//http://blogs.microsoft.co.il/blogs/shair/archive/2009/01/16/iwin32window-owner-for-wpf-window.aspx
var helper = new WindowInteropHelper(xlfuncWindow);
helper.Owner = wndHandle.Handle;
xlfuncWindow.DataContext = XLFunctionModel;
bool? successNullable = xlfuncWindow.ShowDialog();
Name:Win32Exception
Message:Invalid window handle
Target:Void .ctor(Int32, Int32, Int32, Int32, Int32, Int32, Int32, System.String, IntPtr, MS.Win32.HwndWrapperHook[])
Stack: at MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks)
at System.Windows.Interop.HwndSource.Initialize(HwndSourceParameters parameters)
at System.Windows.Interop.HwndSource..ctor(HwndSourceParameters parameters)
at System.Windows.Window.CreateSourceWindow(Boolean duringShow)
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Window.ShowDialog()