名称ChromiumWebBrowser在名称空间“clr-namespace:CefSharp.Wpf; assembly = CefSharp.Wpf”中不存在
我已经按照这个链接实现了CefSharp应用程序。
但是我在编写MainWindow.xaml
。
混合VS 2015说,
名称ChromiumWebBrowser在名称空间“clr-namespace:CefSharp.Wpf; assembly = CefSharp.Wpf”中不存在
但我在NuGet Package Manager中安装了CefSharp.Common和CefSharp.Wpf v51.0.0,cef.redist.x64和cef.redist.x86 v3.2704.1432。
我是开发C#的新手,所以我不知道如何解决这个问题。 请帮我解决这个错误。
这是我的MainWindow.xaml
我只是尝试了链接,正如我在评论中提到的那样编译没有任何问题。
可以忽略。
而预览也不可用,我学会了忍受它。
编译时没有错误
程序启动了。 没问题
对我来说问题是解决方案平台设置为AnyCPU。
据我所知,CefSharp不支持AnyCPU。 有趣的是,解决方案在Release模式下运行得很好,但是在Debug模式下我立即得到了一个错误 – the invocation of the constructor on type that matches ... the specified binding constraints threw an exception.
一旦我将解决方案平台更改为仅x64,那么XAML错误就消失了( The name ChromiumWebBrowser does not exist in the namespace “clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf”
)。 我可以在调试和发布模式下运行解决方案。
它在XAML desginer中不受支持,因此在运行时加载它:
-
从XAMl中删除元素,而是放置任何容器,如边框:
-
在构造函数代码中,在
InitializeComponent();
call,craete浏览器元素并放入容器中。 甚至更好地在类scoop中声明浏览器:CefSharp.Wpf.ChromiumWebBrowser browser = new CefSharp.Wpf.ChromiumWebBrowser(); public MainWindow() { InitializeComponent(); cefChromeContainer.Content = browser; browser.Address = "https://stackoverflow.com"; }