当前位置: 首页 > news >正文

MathJax本地化显示数学符号

Imports System.IO
Imports Microsoft.Web.WebView2.CorePublic Class Form1#Region "界面美化"Public Sub New()' This call is required by the designer.InitializeComponent()' Add any initialization after the InitializeComponent() call.Me.Text = "公式显示器"Me.StartPosition = FormStartPosition.CenterScreenMe.AutoScaleMode = AutoScaleMode.FontMe.FormBorderStyle = FormBorderStyle.FixedSingleMe.MaximizeBox = FalseMe.Size = New Size(900, 600)' 美化 Panel1(顶部按钮区)Me.Panel1.BackColor = Color.FromArgb(240, 240, 240)Me.Panel1.Height = 50' 美化按钮With Me.btnShowFormula.Text = "显示公式".BackColor = Color.FromArgb(0, 120, 215).ForeColor = Color.White.FlatStyle = FlatStyle.Flat.Font = New Font("微软雅黑", 9, FontStyle.Regular).Height = 30.Width = 100.Location = New Point(20, 10).UseVisualStyleBackColor = FalseAddHandler .MouseEnter, Sub(s, e).BackColor = Color.FromArgb(0, 80, 160)End SubAddHandler .MouseLeave, Sub(s, e).BackColor = Color.FromArgb(0, 120, 215)End SubEnd With' 美化 Panel2(底部)Me.Panel2.BackColor = Color.FromArgb(240, 240, 240)Me.Panel2.Height = 40' 美化 Panel3(WebView2区域)Me.Panel3.BackColor = Color.WhiteMe.WebView21.Dock = DockStyle.Fill' 窗体整体背景Me.BackColor = Color.WhiteEnd Sub
#End Region' 初始化WebView2(异步)Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load' 创建允许本地文件访问的环境Dim env = Await CoreWebView2Environment.CreateAsync(options:=New CoreWebView2EnvironmentOptions("--allow-file-access-from-files"))' 用自定义环境初始化WebView2Await WebView21.EnsureCoreWebView2Async(env)' 启用脚本和与网页的消息通信(替代AreLocalObjectReferencesAllowed)WebView21.CoreWebView2.Settings.IsScriptEnabled = TrueWebView21.CoreWebView2.Settings.IsWebMessageEnabled = True' 绑定导航完成事件(可选,用于调试)AddHandler WebView21.CoreWebView2.NavigationCompleted, AddressOf CoreWebView2_NavigationCompletedEnd SubPrivate Sub CoreWebView2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs)If e.IsSuccess ThenConsole.WriteLine("页面加载完成")ElseConsole.WriteLine("加载失败:" & e.WebErrorStatus)End IfEnd SubPrivate Function GenerateMathJaxHtml(formula As String) As String' 获取MathJax的绝对路径(确保路径正确,建议用Path.Combine处理)Dim baseUrl = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MathJax", "tex-mml-chtml.js")' 转换为file://协议格式(关键)Dim mathJaxSrc = New Uri(baseUrl).AbsoluteUriReturn $"<html><head><script>MathJax = {{tex: {{inlineMath: [['$', '$'], ['\\(', '\\)']],displayMath: [['$$', '$$'], ['\\[', '\\]']]}},svg: {{ fontCache: 'global' }},startup: {{pageReady: function() {{// 手动触发渲染(解决本地文件延迟问题)return MathJax.startup.defaultPageReady().then(function() {{MathJax.typeset();}});}}}}}};</script><script src=""{mathJaxSrc}""></script></head><body><div style=""font-size: 18px; padding: 20px;"">{formula}</div></body></html>"End FunctionPrivate Sub btnShowFormula_Click(sender As Object, e As EventArgs) Handles btnShowFormula.ClickIf WebView21.CoreWebView2 Is Nothing ThenMessageBox.Show("WebView2 未初始化!")ReturnEnd IfDim latexFormula As String = TextBox1.Text '"$E = mc^2$ 及 \[ \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2} \]"Dim htmlContent = GenerateMathJaxHtml(latexFormula)' 保存为临时HTML文件(关键:用本地文件加载)Dim tempPath = Path.Combine(Path.GetTempPath(), "math_temp.html")File.WriteAllText(tempPath, htmlContent)' 用Navigate加载本地文件(而非NavigateToString)WebView21.CoreWebView2.Navigate(New Uri(tempPath).AbsoluteUri)End SubEnd Class

http://www.dtcms.com/a/508251.html

相关文章:

  • CGroups资源控制实战【Linux】
  • 【数学】诱导公式
  • TDengine 数学函数 PI 用户手册
  • 郑州企业网站类似于凡科的网站
  • maven简介与安装
  • 网站通栏广告设计会员制网站建设
  • 【DIY】RS232串口监听头制作
  • 【CMakeLists.txt】project(LibreCAD VERSION 2.2.2)
  • 网站怎么加链接网店美工实训报告
  • Marin说PCB之SI----做信号完整性仿真时需要注意的地方--01
  • 用C语言实现组合模式
  • 石家庄哪里有网站推广深圳网站建设开发哪家好
  • C#开发学习杂笔(更新中)
  • 【JAVA】实体类注解不持久化至数据库
  • 【Java 开发工程师面试场景题大全】
  • 站长推荐跳转福州网站制作维护服务
  • 垂直网站建设规模项目推广方案怎么写
  • 物联网如何重塑现代物流?从“货物运输”到“智能供应链”的变革!
  • 网站申请支付宝支付html网站的设计
  • Process Monitor 学习笔记(5.17):常见问题 性能调优(FAQ + Best Practices)
  • 从零开始学像素画——第三章 1.3像素画明暗
  • 如何有效应对企业数据爆炸式增长?群晖 RS4017xs+私有云存储有办法
  • 自适应检索增强生成(Adaptive RAG):智能问答的新范式
  • Python3 正则表达式详解
  • 智慧养老照护实训室沉浸式教学场景搭建与护理人才培养路径
  • YOLOv3目标检测算法深度解析:从核心改进到实战应用
  • Web前端开发工具实战指南 从开发到调试的完整提效方案
  • 济南网站设计公司富wordpress不兼容ie
  • ajax做购物网站燕郊做网站的公司
  • java求职学习day44