我有以下基本XAML:
<Window x:Class="SomeControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<WebBrowser x:Name="webBrowser"></WebBrowser>
</Grid>
</Window>
当我试图关闭包含用户控件的标签时,我收到以下错误:
托管调试助手&#39; FatalExecutionEngineError&#39;已经检测到了 问题在于Some.vshost.exe&#39;。
其他信息:运行时遇到致命错误。该 错误的地址是0x7ba6a66f,在线程0x3bd0上。错误 代码是0x80131623。此错误可能是CLR或中的错误 用户代码的不安全或不可验证部分。这个的常见来源 错误包括COM-interop或PInvoke的用户封送错误 可能会破坏堆栈。
我试图调用WebBrowser.Dispose()
,但它返回相同的错误
答案 0 :(得分:2)
我们遇到了同样的问题。我们尝试手动处理控件,但问题仍然存在。最后,我们使用了来自System.Windows.Forms命名空间的WindowsFormsHost组件和WebBrowser。
<Window x:Class="SomeControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="_webBrowserGrid>
</Grid>
</Window>
在代码中:
var host = new System.Windows.Forms.Integration.WindowsFormsHost();
System.Windows.Forms.WebBrowser _webBrowser = new System.Windows.Forms.WebBrowser();
host.Child = _webBrowser;
this._webBrowserGrid.Children.Add(host);
_webBrowser.Navigate("http://www.google.com");