我正在尝试将WebKitBrowser
与WPF应用程序一起使用,但是收到的运行时错误显示:
FileNotFoundException未被用户代码处理:
WpfApplication1.exe中出现“System.IO.FileNotFoundException”类型的异常,但未在用户代码中处理
其他信息:无法加载文件或程序集'WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be'或其依赖项之一。系统找不到指定的文件。
我正在创建WebKitBrowser
的实例(在我的MainWindow.xaml.cs
文件的构造函数内)时发生异常:
System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();
WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser();
browser.Navigate("http://www.google.com");
host.Child = browser;
browser.Show();
grdBrowserHost.Children.Add(host);
我的using
文件顶部有必要的.cs
语句:
using System.Windows.Forms;
using WebKit;
我用try-catch
语句包围了那段代码,但是当我运行我的代码时,WebKitBrowser
没有像我希望的那样添加到窗口中,所以我猜正在捕获/处理异常 - 虽然我没有看到我添加到Console.WriteLine();
语句中的try-catch
消息。
我尝试捕获FileNotFoundException
或Exception
,但结果相同 - 应用程序的运行方式与我添加代码以创建实例之前的方式完全相同WebKitBrowser
。
grdBrowserHost
是我给<grid></grid>
XML元素的名称,我想在那里显示浏览器,虽然我没有在XML元素中写任何内容 - 我是否需要能够在那里使用的东西显示浏览器?我的XML部分是:
<TabItem Header="Browser">
<StackPanel>
<Grid x:Name="grdBrowserHost">
</Grid>
</StackPanel>
</TabItem>
修改
虽然我想使用WebKit
浏览器或其他支持JavaScript的浏览器等,但我已经看过使用WPF提供的“内置”Web浏览器,并编辑了我的XAML要在我要显示浏览器的<StackPanel></StackPanel>
标记内包含以下标记:
<WebBrowser HorizontalAlignment="Left"
Height="100"
Margin="10, 10, 0, 0"
VerticalAlignment="Top"
Width="100"
Name="BuiltInBrowser" />
在Visual Studio 2015的“设计”视图中,此标记在我的应用程序窗口中显示一个矩形区域,其中将显示浏览器,但是,当我运行应用程序时,主窗口上不显示WebBrowser
,即使Visual Studio 2015中的“设计”视图显示WebBrowser
所在的矩形区域(灰色)。
为什么运行应用程序时,WebBrowser
在应用程序窗口中不显示,即使它正在设计视图中显示?
如何在此处显示WebKitBrowser
,而不是WebBrowser
?
如果我尝试在我的XAML中打开<WebKitBrowser></WebKitBrowser>
标记,该行会显示一条编译错误消息:
Windows Presentation Foundation(WPF)项目中不支持WebKitBrowser
如何包含/引用WebKitBrowser
以便支持它,我可以使用它?
答案 0 :(得分:0)
using语句只保存您在该源文件中重复键入命名空间;您将添加一个项目引用到Webkit.Interop(或一个COM类库,它将为您生成一个Interop文件)。那个dll在运行时是必需的,因此你的错误。