C# WPF 与 JS 交互可以使用的第三方库

在开发现代桌面应用程序时,C# WPF(Windows Presentation Foundation)经常与 JavaScript 交互,以利用丰富的 Web 技术。以下是一些流行的第三方库,它们可以帮助你在 WPF 应用程序中实现与 JS 的交互。

1. CefSharp

CefSharp 是一个流行的开源库,它允许你在 WPF 应用程序中嵌入 Chromium 浏览器。通过这个库,你可以加载网页,并且能够实现 C# 和 JavaScript 之间的双向通信。

示例代码:

复制代码
go 复制代码
// C# 调用 JS 方法
Browser.ExecuteScriptAsync("jsFunction()").Wait();

// JS 调用 C# 方法
public void ShowMessage(string message)
{
    MessageBox.Show(message);
}

// 在 XAML 中定义 ChromiumWebBrowser 控件
<Window ...
    xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
    ...
    <wpf:ChromiumWebBrowser x:Name="Browser" />

你可以在 CefSharp 的 GitHub 仓库 中找到更多信息和示例。

2. WebView2

WebView2 是由 Microsoft 提供的另一个库,它允许开发者在 WPF 应用程序中嵌入 Web 浏览器控件。它基于 Chromium,并支持与 JavaScript 的交互。

示例代码:

复制代码
go 复制代码
// C# 调用 JS 方法
webView.CoreWebView2.ExecuteScriptAsync("jsFunction()").GetAwaiter().GetResult();

// JS 调用 C# 方法
public void LogMessage(string message)
{
    Console.WriteLine(message);
}

WebView2 的更多信息可以在 Microsoft 的官方文档 中找到。

3. NanUI

NanUI 是一个基于 .NET 的 UI 框架,它可以让你在 WPF 应用程序中使用 HTML/CSS/JS 来构建用户界面。它提供了丰富的 API,使得 C# 和 JavaScript 之间的交互变得简单。

示例代码:

复制代码
go 复制代码
// C# 调用 JS 方法
formium1.Browser.CoreWebView2.ExecuteScriptAsync("jsFunction()").GetAwaiter().GetResult();

// JS 调用 C# 方法
public void FromJavaScript(string data)
{
    MessageBox.Show(data);
}

NanUI 的详细信息可以在 NanUI 的 Gitee 仓库 中查看。

4. HandyControl

HandyControl 是一个开源的 WPF 控件库,它提供了丰富的控件和样式。虽然它本身不专注于 C# 和 JS 的交互,但你可以使用它来构建用户界面,并通过 WebView 控件来实现与 JS 的交互。

示例代码:

复制代码

xaml

go 复制代码
<Border ...
    HandyControl:WebView2Helper.WebView2="{Binding WebView2}" />

HandyControl 的更多信息可以在 HandyControl 的 GitHub 仓库 中找到。

结论

以上库都提供了不同的方式来实现 C# WPF 与 JavaScript 的交互。CefSharp 和 WebView2 提供了更底层的浏览器集成,而 NanUI 提供了更高级的抽象,允许你使用 Web 技术开发整个用户界面。HandyControl 则提供了一个丰富的控件集,可以通过内置的 WebView 控件实现与 JS 的交互。

往期精品推荐:

在国内默默无闻的.NET,在国外火的超乎想象?

C#的膨胀之路:创新还是灭亡

介绍.NET 6款好看的winform开源UI库

介绍一款最受欢迎的.NET 开源UI库

WPF第三方开源UI框架:打造独特体验的魔法师

WPF与Winform,你的选择是?

WinForm的前世今生

.NET成年了,然后呢?------编程界的逆袭传奇

相关推荐
2401_837088501 分钟前
setup 语法糖核心要点
开发语言·前端·javascript
创可贴治愈心灵1 小时前
WPF中UI线程频繁操作造成卡顿的处理
ui·c#·wpf
你也向往长安城吗1 小时前
基于 navmesh 的路径搜索技术剖析 (游戏、三维方向必看!!!)
javascript·游戏·游戏开发
我爱学嵌入式1 小时前
C语言:第18天笔记
c语言·开发语言·笔记
JustHappy1 小时前
「Versakit攻略」🔥Pnpm+Monorepo+Changesets搭建通用组件库项目和发包流程
前端·javascript·vue.js
楚Y6同学2 小时前
QT之QSS的使用方法和常用控件的样式设置
开发语言·qt
long3162 小时前
适配器模式 java demo
java·javascript·后端·程序人生·设计模式·适配器模式
Yolo566Q3 小时前
“R语言+遥感”的水环境综合评价方法实践技术应用
开发语言·r语言
2401_837088503 小时前
ref 简单讲解
前端·javascript·vue.js
汪子熙4 小时前
Vite 极速时代的构建范式
前端·javascript