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;
  }
相关推荐
Dragonir12 分钟前
React+Three.js 实现 Apple 2025 热成像 logo
前端·javascript·html·three.js·页面特效
aichitang20241 小时前
欧拉拓扑学公式:几何与拓扑的交汇
html·拓扑学
peachSoda71 小时前
封装一个不同跳转方式的通用方法(跳转外部链接,跳转其他小程序,跳转半屏小程序)
前端·javascript·微信小程序·小程序
没有bug.的程序员1 小时前
服务治理与 API 网关:微服务流量管理的艺术
java·分布式·微服务·架构·wpf
@PHARAOH1 小时前
HOW - 浏览器兼容(含 Safari)
前端·safari
undefined在掘金390412 小时前
flutter 仿商场_首页
前端
少卿2 小时前
react-native图标替换
前端·react native
熊猫钓鱼>_>2 小时前
TypeScript前端架构与开发技巧深度解析:从工程化到性能优化的完整实践
前端·javascript·typescript
JYeontu2 小时前
肉眼难以分辨 UI 是否对齐,写个插件来辅助
前端·javascript