# WebToApp 一个基于 WPF 和 WebView2 的网页转桌面应用工具,可以将在线网页或本地网页打包成 Windows 桌面应用程序。 ## 功能特性 - 🌐 **支持在线网页**:直接加载远程网页地址 - 📁 **支持本地网页**:支持本地 HTML 文件,可通过 HTTP 服务器或直接文件方式加载 - 🎨 **自定义窗口设置**:可配置窗口大小、置顶、全屏等属性 - 🖱️ **自定义右键菜单**:提供返回、刷新、关于等快捷操作 - 📥 **下载拦截**:智能拦截下载链接,使用系统保存对话框 - 🎯 **滚动条隐藏**:可隐藏网页滚动条,提供更沉浸的体验 - 🖼️ **自定义图标和标题**:支持自定义应用图标和窗口标题 ## 技术栈 - **.NET 8.0** - 跨平台开发框架 - **WPF** - Windows Presentation Foundation - **WebView2** - 基于 Chromium 的 WebView 控件 ## 系统要求 - Windows 10/11 - .NET 8.0 Runtime(如果使用独立部署则不需要) - WebView2 Runtime(通常已预装或会自动下载) ## 快速开始 ### 1. 克隆项目 ```bash git clone https://github.com/yourusername/WebToApp.git cd WebToApp ``` ### 2. 配置应用 编辑 `config/config.json` 文件来配置你的应用: #### 在线网页配置示例 ```json { "软件名称": "我的应用", "软件logo": "config/logo.png", "网页类型": "在线网页", "在线网页": { "链接地址": "https://example.com" }, "注入设置": { "隐藏网页滚动条": true, "自定义右键菜单": true, "拦截下载链接": true }, "窗口设置": { "窗口宽度": 1200, "窗口高度": 800, "窗口可调整大小": true, "窗口置顶": false, "窗口阴影": true, "全屏": false } } ``` #### 本地网页配置示例 ```json { "软件名称": "我的应用", "软件logo": "config/logo.png", "网页类型": "本地网页", "本地网页": { "网页目录": "config/web", "网页入口": "index.html", "展示模式": "http服务器" }, "注入设置": { "隐藏网页滚动条": true, "自定义右键菜单": true, "拦截下载链接": true }, "窗口设置": { "窗口宽度": 1200, "窗口高度": 800, "窗口可调整大小": true, "窗口置顶": false, "窗口阴影": true, "全屏": false } } ``` ### 3. 构建项目 使用 Visual Studio 或命令行构建: ```bash dotnet build ``` ### 4. 运行应用 ```bash dotnet run ``` 或者直接运行编译后的可执行文件。 ### 5. 发布应用 发布为独立可执行文件: ```bash dotnet publish -c Release -r win-x64 --self-contained true ``` 发布后的文件在 `bin/Release/net8.0-windows/win-x64/publish/` 目录下。 ## 配置说明 ### 窗口设置 - `窗口宽度` / `窗口高度`:设置窗口的初始大小(像素) - `窗口可调整大小`:是否允许用户调整窗口大小 - `窗口置顶`:窗口是否始终显示在其他窗口之上 - `窗口阴影`:是否显示窗口阴影效果 - `全屏`:是否以全屏模式启动 ### 注入设置 - `隐藏网页滚动条`:隐藏网页内的滚动条 - `自定义右键菜单`:启用自定义右键菜单(包含返回、刷新、关于等功能) - `拦截下载链接`:拦截网页中的下载链接,使用系统保存对话框 ### 本地网页展示模式 - `http服务器`:使用内置 HTTP 服务器提供网页服务(推荐) - `直接本地`:直接使用 `file://` 协议加载本地文件 ## 项目结构 ``` WebToApp/ ├── config/ # 配置文件目录 │ ├── config.json # 主配置文件 │ ├── logo.png # 应用图标 │ └── aboutpage/ # 关于页面 │ └── about.html ├── MainWindow.xaml # 主窗口 XAML ├── MainWindow.xaml.cs # 主窗口代码 ├── App.xaml # 应用程序 XAML ├── App.xaml.cs # 应用程序代码 └── WebToApp.csproj # 项目文件 ``` ## 开发 ### 环境要求 - Visual Studio 2022 或更高版本 - .NET 8.0 SDK ### 依赖项 - Microsoft.Web.WebView2 (1.0.3595.46) ## 许可证 本项目采用 MIT 许可证。 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 作者 [你的名字] --- 如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!