WPF外部打开html文件

注意:这是一份提供WPF外部浏览器打开html的方法,而不是WPF内部嵌入html

需要通过浏览器打开,否则无法使用地址栏拼接参数的形式操作html

下面是打开html的方法↓

csharp 复制代码
 string localHtmlPath = @"C:\Users\pangb\Downloads\Help\帮助文档 - 副本.html";

 if (File.Exists(localHtmlPath))
 {
     try
     {
         string browserPath = GetDefaultBrowserPath();

         string fullUri = new Uri(localHtmlPath).AbsoluteUri + "?page=first.html";
         
         Process.Start(browserPath, $"\"{fullUri}\"");
     }
     catch (Exception ex)
     {
         MessageBox.Show($"打开文件时出错: {ex.Message}");
     }
 }
 else
 {
     MessageBox.Show("HTML文件未找到!");
 }

这是获取浏览器的方法↓

csharp 复制代码
  private string GetDefaultBrowserPath()
  {
      try
      {
          string name = Microsoft.Win32.Registry.GetValue(
              @"HKEY_CLASSES_ROOT\http\shell\open\command", "", null) as string;

          if (name != null)
          {
              // 清理路径(移除参数和引号)
              if (name.Contains("\""))
                  name = name.Substring(1, name.IndexOf('"', 1) - 1);

              return name;
          }
      }
      catch
      {
          // 忽略错误,返回空字符串
      }

      return null;
  }
相关推荐
Lsx-codeShare3 小时前
前端数据可视化:基于Vue3封装 ECharts 的最佳实践
前端·javascript·echarts·vue3·数据可视化
code bean3 小时前
【wpf】WPF 自定义控件绑定数据对象的最佳实践
wpf
jason_yang3 小时前
vue3中定义组件的4种姿势
前端·vue.js
code bean3 小时前
【wpf】WPF开发避坑指南:单例模式中依赖注入导致XAML设计器崩溃的解决方案
单例模式·wpf
somethingGoWay4 小时前
wpf 自定义控件,只能输入小数点,并且能控制小数点位数
wpf
袋鱼不重4 小时前
Gitee 与 GitHub 仓库同步:从手动操作到自动化部署
前端·github
哒哒哒就是我4 小时前
React中,函数组件里执行setState后到UI上看到最新内容的呈现,react内部会经历哪些过程?
前端·react.js·前端框架
AGG_Chan4 小时前
flutter专栏--深入剖析你的第一个flutter应用
前端·flutter
再学一点就睡4 小时前
多端单点登录(SSO)实战:从架构设计到代码实现
前端·架构