展开

关键词

C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用

在我博客《C#开发BIMFACE系列52 CS客户端集成BIMFACE应用技术方案》中介绍了多种集成BIMFACE到客户端程序方案。 允许开发者在.NET应用程序嵌入Chromium。可以在C#或VB或任何其他CLR语言中使用。CefSharp同时提供WPF和WinForms Web浏览器控件实现。 步骤2 通过 NeGet 下载 打开NeGet (1)搜索 CefSharp (2)选择 CefSharp.WinForms (3)选择最新版本 (4)点击【安装】按钮 点击【确定】开始安装。 安装完成后,项目中自动添加了CefSharp.dll、CefSharp.Core.dll、CefSharp.WinForms.dll 类库引用。 网页调用时候必须将方法名称第一个字母改为小写。否则调用不成功。 调用C#方法。

24440

如何解决C#异常:必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你Main函数已在其上标记了STAThreadAttribute

本文概述 异常示例 解 如果你应用程序运行一段代码, 该代码触发以下ThreadStateException异常: System.Threading.ThreadStateException:’必须先将当前线程设置为单线程单元 异常示例 在我们项目中, 我们使用CefSharp库, 该库允许我们使用HTML, CSS和JavaScript创建桌面应用程序。它功能之一是可以将C#类暴露给窗口中JavaScript对象。 我们具有以下类, 该类显示用于保存文件本机对话框(showOpenDialog函数): using System; using CefSharp.WinForms; using System.IO; 线程)执行该函数, 则将触发异常, 因为我们正在CefSharp默认Apartment State内部运行代码。 在我们例子, 使用从CefSharp中注册类启动OpenFileDialog方法, 如果在不更改线程单元状态情况下运行代码, 将引发异常。

25710
  • 广告
    关闭

    腾讯云校园大使火热招募中!

    开学季邀新,赢腾讯内推实习机会

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WinForm嵌入Web网页解决方案

    如果启动,则弹出提示信息告知用户需要打开客户端程序进行下载。这就是一个典型Web网页启动客户端程序场景。 CefSharp【推荐】   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET应用程序简单方法。 CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。 CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#、WinForm窗体之间相互通讯与调用。 DotNetBrowser   DotNetBrowser能嵌入一个基于ChromiumWPF或WinForms组件到你.NET应用,用来显示使用HTML5、CSS3、JavaScript、Silverlight

    53410

    .NET Core.NET5.NET6 开源项目汇总12:WPF组件库2

    使用它来构建外观专业、现代且易于使用WPF应用程序。它已经在这里、Codeplex和NuGet上下载了100多万次。 ? 包含以下控件 ? Plus版本其他控件和功能 ? GitHub:https://github.com/xceedsoftware/wpftoolkit 6、CefSharp   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。 CefSharp包括用于PDF、网页打印和WebKit Inspector(开发工具)嵌入式模块。CefSharp没有外部依赖项,完整版本CefSharp只会为您应用程序增加约80MB内存。 集成功能 可以通过编程方式执行Javascript,向Javascript公开.Net类,并在Javascript事件触发时接收回调。

    45810

    C#开发BIMFACE系列52 CS客户端集成BIMFACE应用技术方案

    不同浏览器内核对网页编写语法解释也有不同,因此同一网页在不同内核浏览器渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核浏览器测试网页显示效果原因。 CefSharp【推荐】   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET应用程序简单方法。 CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。 CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#、WinForm窗体之间相互通讯与调用。 DotNetBrowser   DotNetBrowser能嵌入一个基于ChromiumWPF或WinForms组件到你.NET应用,用来显示使用HTML5、CSS3、JavaScript、Silverlight

    11310

    使用CefSharp开发一个12306“安心刷票弹窗通知”工具

    JS无法调用VB.NET写方法,而它去可以在X64模式下调用C#方法。 : Dim WithEvents WebBrowser1 As CefSharp.WinForms.ChromiumWebBrowser Me.WebBrowser1 = New CefSharp.WinForms.ChromiumWebBrowser 由于CefSharp版本问题,这个JS代码必须写到 浏览器控件 FrameLoadEnd 事件,但是之前查询到文章里面都说可以在 IsBrowserInitializedChanged 事件里面,现在是找不到 之前是在 CefSharp控件 IsBrowserInitializedChanged 事件处理,结果发现运行时偶发错误,而且是Win 10报错但是Win 8.1报错: 相关UI访问代码会发生“线程间操作无效 ”异常 推测是CefSharp控件这些事件可能不一定运行在UI线程,在非UI线程启动定时器那么定时器“定时事件”也不在UI线程了,所以报错。

    1.4K100

    .NET桌面程序集成Web网页开发十种解决方案

    下图是在Winform程序中使用WebView2组件加载我博客园页面的效果 控件4:CefSharp   CefSharp是一种将功能齐全符合标准web浏览器嵌入C#或VB.NET应用程序简单方法 CefSharp拥有WinForms和WPF应用程序浏览器控件,以及自动化项目的OffScreen版本。 CefSharp中文帮助文档,请点击查看 免费、开源:https://github.com/cefsharp/CefSharp 支持JS、C#、WinForm窗体之间相互通讯与调用。 控件7:DotNetBrowser DotNetBrowser能嵌入一个基于ChromiumWPF或WinForms组件到你.NET应用,用来显示使用HTML5、CSS3、JavaScript、 而且在网页调用本地接口、以及 aardio 与浏览器交互极其方便,例如直接调用 Javascript 函数,并且在 Javascript 中直接回调 aardio 函数,不需要任何复杂封装和中间件

    13010

    CefSharpc#和JavaScript交互读取电脑信息

    与主要关注谷歌Chrome应用程序开发Chromium项目本身不同,CEF专注于在第三方应用程序促进嵌入式浏览器用例。 CEF维基百科页面上提供了使用CEF公司和产品部分列表。CEF一些用例包括: 在现有本机应用程序嵌入符合HTML5Web浏览器控件。 创建轻量级本机“shell”应用程序,该应用程序托管主要使用Web技术开发用户界面。 在具有自己自定义绘图框架应用程序“在屏幕外”呈现Web内容。 它提供了浏览器和主机应用程序之间紧密集成,包括对自定义插件,协议,JavaScript对象和JavaScript扩展支持。 前言 有时我们在winform与wpf嵌入浏览器,需要在页面上读取电脑上一些信息,这个时候就需要用到CefSharpRegisterJsObject进行注册方法然后供js进行调用了。

    4K20

    .NET混合开发解决方案24 WebView2对比CefSharp超强优势

    .NET混合开发解决方案2 WebView2与Edge浏览器区别 .NET混合开发解决方案3 WebView2进程模型 .NET混合开发解决方案4 WebView2线程模型 .NET混合开发解决方案 控件导航事件 .NET混合开发解决方案10 WebView2控件调用网页JS方法 .NET混合开发解决方案11 网页JS调用C#方法 .NET混合开发解决方案12 网页JS调用C#方法访问WinForm 调试WebView2应用 使用 WebView2 DevTools 调试应用程序 使用 Visual Studio Code 调试应用程序 使用 Visual Studio 调试WebView2应用 第一次使用了CefSharp组件,集成开发结束后,测试及使用过程遇到了一些无法处理bug及严重性能问题。 最终选用了微软新出品基于Edge浏览器WebView2组件,经过测试及大量客户实际应用,可以直观感受到WebView2组件功能稳定性与其他强大、便捷之处。

    13720

    WPF中使用CEFSharp加载网页及交互

    安装依赖 通过Nuget安装,右击项目 -> 管理Nuget程序包 -> 在打开界面搜索CefSharp,依次安装 CefSharp.Common和 CefSharp.Wpf ,至于 cef.redist.x64 在xaml添加浏览器 xmal文件头部插入引用 xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" 添加控件如下: <Grid x ("https://www.psvmc.cn"); 代码添加浏览器 添加浏览器类: using CefSharp.Wpf; using System.ComponentModel; using System.Windows public class LifeSpanHandler : ILifeSpanHandler { //弹出前触发事件 public bool OnBeforePopup( ,否则不能加载,之前我项目在C#目录下,就一直加载不了页面。

    1.1K10

    .NET Core 3.0 新变化

    为了应对全局安装 .NET Framework 兼容性挑战,它设计有并行支持,包括随附作为应用程序一部分框架,这样应用程序就不会依赖在计算机上安装任何框架。 桌面(WinForms 和 WPF)和开放源代码 WinForms 和 WPF 是两个最常用 .NET 应用程序类型,有数百万开发人员在使用。. 此外,鉴于这种并行本质,可以改进 .NET Core API(包括 WinForms 和 WPF),而无需承担损坏应用程序风险。 然后,程序集和基于 WebAssembly .NET 运行时被下载到浏览器,仅使用开放式 Web 标准就能执行它们(无需任何插件或代码转换),如图 1 所示。 ? 执行后,组件跟踪 DOM 所需更新,并通过 SignalR 连接将要应用这些更新发送到浏览器。UI 事件使用同一连接发送到服务器。

    44710

    基于.net开发chrome核心浏览器【七】

    ,但这个项目的负责人,并没有持续跟进这个问题 直到上周一才解决掉这个问题,这期间不知道有多少、日、韩开发者在这个问题上纠结 我只能狠狠说一句“我去年买了个表!” (当然这是开玩笑的话,我还是尊重开源界所付出心血和汗水) 目前CefSharp、CefGlue、chromiumfx都还没有更新,这个问题在这三个项目上依然存在。 nodejs+chromium核心并且还共用V8引擎,对chromium封装非常好,你几乎挑不出任何毛病 想 用nw.js开发一个浏览器也不是不可能,但一定要用nodejs就有点蛋疼了, 第二个参数和第三个参数都是和出错调试有关 浏览器加载状态变更事件 wb.OnLoadingStateChange += wb_OnLoadingStateChange e.IsLoading值是false 后记 就写到这里,以后再写本系列第八篇 第八篇内容将包含: 接管js对话框,并自动触发是或否按钮 JS和C#通信

    1.1K70

    Build 2018大会:.NET概述和路线图

    会谈指出,未来.NET平台将可以搭建任何类型应用程序:桌面程序、web程序、云程序、移动应用、游戏应用、物联网应用或是人工智能应用。你可以将自己熟悉编程语言应用到新领域中来。 XAML Controls可以实现WinForms和WPF浏览器以及媒体UWP控制。对于WinForms进行了DPI修复。要做到这个,必须修改WinForms。 但是由于在.NET Core中有并排支持,这些需要使用WinForms应用程序可以和其他对于.NET Core使用分开。 C# 7.2、EditorConfig和.NET Core 2.1 RC也将被支持。可以预览Team Foundation Version Control。两款IDE都使用相同代码库。 Blazor Blazor是一款基于Razo和.NET,通过WebAssembly运行在浏览器实验性web UI框架。旨在简化可以运行在任何浏览器快速搭建单页应用程序工作。

    17110

    DotNet 资源大全中文版(Awesome最新版)

    Code Snippets代码片段 .NET Fiddle - 在浏览器编写并运行C#代码。 大部分复杂性都隐藏在库,您可以专注于编写对您很重要代码,而不是调试消息代码。 任何分布式应用程序基础. FsShelter - 用于创建Apache Storm组件和拓扑F#库。 MaterialSkin -本文.NET WinFormsC#或VB.Net,针对Google材料设计原则。 支持通过ETW进程内和进程外记录,以及Rx用于实时过滤/聚合事件。 Foundatio - 流畅日志记录API,可用于在整个应用程序记录消息。 Web BrowsersWeb浏览器 CefSharp - 由Chromium提供HTML5,CSS3和JS Web浏览器,适用于WinForms和WPF Web FrameworksWeb框架 ASP.NET

    1.8K81

    python Tutorial

    这个事件处理即是: FileSystemWatcher - 一个触发( raises )文件系统变化“事件组件. 简单方法就是右击鼠标选择 "新建"文本文档". 文件watcher 将会触发"Created"事件.        Task 2: 改进事件处理 在上一个任务里,步骤7我们了解参数类型被传递到了所有三个事件: FileSystemWatcher - 触发事件对象实例 FileSystemEventArgs handle 确保事件触发为有效状态: w.EnableRaisingEvents = True 再次打开Tutorial 路径,然后创建一个新文件 ("Created" 事件),  在记事本编辑并保存该文件 现在设置窗体Text 属性: f.Text = "My First Interactive Application" 在运行应用程序, 注意form 单击事件.

    24350

    Jtro技术分享:获取传感器消息通过mqtt通讯传给网页前端

    我们先来看第一个:获取传感器消息 首先看一下c#对于串口通讯操作(急于实现功能各位可以跳过直接看下面的源码) SerialPort类常用属性 名  称 说  明 BaseStream 获取 SerialPort 获取或设置 DataReceived 事件发生前内部输入缓冲区字节数 RtsEnable 获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号 StopBits 获取或设置每个字节标准停止位数 System.Linq; using System.Management; using System.Threading; using System.Windows.Forms; namespace CefSharp.MinimalExample.WinForms { throw; } } } } 里面还有一个crc检验 using System; namespace CefSharp.MinimalExample.WinForms System.Windows.Forms; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; namespace CefSharp.MinimalExample.WinForms

    2.2K1513

    Unity获取传感器消息通过mqtt通讯传给网页前端

    我们先来看第一个:获取传感器消息 首先看一下c#对于串口通讯操作(急于实现功能各位可以跳过直接看下面的源码) SerialPort类常用属性 名  称 说  明 BaseStream 获取 SerialPort 获取或设置 DataReceived 事件发生前内部输入缓冲区字节数 RtsEnable 获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号 StopBits 获取或设置每个字节标准停止位数 System.Linq; using System.Management; using System.Threading; using System.Windows.Forms; namespace CefSharp.MinimalExample.WinForms { throw; } } } } 里面还有一个crc检验 using System; namespace CefSharp.MinimalExample.WinForms System.Windows.Forms; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; namespace CefSharp.MinimalExample.WinForms

    1.2K53

    开源Mono框架将C#编程带到iPhone、Android和Wii

    Mono 2.10主要更新和改进: Google Native Client Support 支持Google本地客户端,允许本地代码在浏览器运行。 Mono虚拟机,垃圾收集器和Just-in-Time编译器可以运行于本地客户端沙箱。 New Profiler engine 新版Profiler解决了原先Profiler在处理多线程、multi-appdomain应用程序以及大数据量时诸多问题,GC新增触发事件让开发者可以针对自己程序编写更先进 New C# Compiler backend (can now use any custom mscorlib) 新C#后台编译器,基于 IKVM.Reflection API ,允许开发者引用第三方 Mono没有这些类库开源实现,所以ASP.NET MVC 3应用程序不能无缝地运行于mono,你需要移除对Microsoft.Web.Infrastructure.dll引用,使用mono自己实现

    79870

    使用.NET Core 构建现代化桌面应用

    .NET Framework 4.8 已经发布,.NET 4.8 已经帮助我们解决了很多问题, WPF和Windows Forms高DPI更好至此,Windows 10 中最新浏览器和媒体播放器新控件 .NET Core 性能更好,速度更快,.NET Core并行安装特性可以帮助你在发布应用程序获取显而易见方便,更好打包方案MSIX, 开源,支持.NET Standard 2.1, 支持C 如果您需要更多信息, 请按照博客文章步骤操作。它是非常完整。 开始,可以将 UWP XAML 控件直接添加到与窗口句柄 (HWND) 关联 WPF、Windows 窗体或 C++ Win32 应用任何 UI 元素。 为了解决这个问题,微软创建了两个新控件:WinForms XAML Host和WPF XAML Host,使开发人员可以把UWP编写UI嵌入到现有WinForms/WPF应用程序

    75610

    微软热门开源项目及代码库地址

    https://github.com/Microsoft/vscode TypeScript TypeScript 是一种用于应用程序级 JavaScript 语言。 TypeScript 将可选类型添加到 JavaScript , 该 JavaScript 支持适用于任何操作系统上任何浏览器任何主机大规模 JavaScript 应用程序工具。 Web 应用程序。 https://github.com/aspnet/EntityFrameworkCore Roslyn Roslyn 为开源 C# 和 Visual Basic 编译器提供了丰富代码分析 API。 https://github.com/PowerShell/PowerShell Monaco Editor 可以在浏览器里运行代码编辑器,也就是VSCode里所使用相同编辑器。 ?

    46331

    扫码关注腾讯云开发者

    领取腾讯云代金券