# mn-shell **Repository Path**: eastmike/mn-shell ## Basic Information - **Project Name**: mn-shell - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-01 - **Last Updated**: 2026-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MN.Shell MN.Shell MN.Shell 是一个受 Visual Studio 和 Visual Studio Code 启发的应用程序框架,基于 .NET 6.0 和 WPF 构建,采用 MVVM 架构模式。它提供了插件系统、美观的主题、停靠布局等功能。 本项目将原来的 MN.Shell.MVVM 替换为 CommunityToolkit.Mvvm。 ## 特性 - **MVVM 架构** - 基于 CommunityToolkit.Mvvm 的现代化 MVVM 框架 - **插件系统** - 灵活的插件机制,支持动态加载和扩展 - **主题支持** - 支持明暗主题切换,提供了多种配色方案 - **停靠布局** - 使用 AvalonDock 实现类似 Visual Studio 的停靠窗口 - **菜单系统** - 动态菜单构建,支持多级菜单 - **状态栏** - 可自定义的状态栏组件 - **文件夹浏览器** - 内置的文件资源管理器模块 - **对话框** - 统一的消息框和对话框管理 ## 技术栈 - .NET 6.0 - WPF (Windows Presentation Foundation) - CommunityToolkit.Mvvm - CommunityToolkit.Logging - Ninject (依赖注入) - NLog (日志) - AvalonDock (停靠布局) ## 项目结构 ``` src/ ├── MN.Shell.Demo/ # 演示应用程序 │ ├── ControlsDemo/ # 控件演示 │ ├── Output/ # 输出窗口 │ ├── ProgressBars/ # 进度条演示 │ └── TabbedInterface/ # 标签页界面演示 ├── MN.Shell.MVVM.Sample/ # MVVM 使用示例 ├── MN.Shell.MVVM/ # MVVM 核心框架 ├── MN.Shell.PluginContracts/ # 插件契约接口 ├── MN.Shell/ # 主应用程序 │ ├── Behaviors/ # WPF 行为 │ ├── Controls/ # 自定义控件 │ ├── Core/ # 核心功能 │ ├── Framework/ # 框架组件 │ │ ├── ColorSchemes/ # 配色方案 │ │ ├── Dialogs/ # 对话框 │ │ ├── Docking/ # 停靠布局 │ │ ├── Menu/ # 菜单系统 │ │ ├── MessageBox/ # 消息框 │ │ ├── Messages/ # 消息机制 │ │ ├── StatusBar/ # 状态栏 │ │ └── Tree/ # 树形控件 │ ├── Modules/ # 功能模块 │ │ ├── FolderExplorer/ # 文件资源管理器 │ │ ├── MessageBox/ # 消息框模块 │ │ └── Shell/ # 主界面 │ ├── Themes/ # 主题资源 │ └── Resources/ # 图标资源 ``` ## 快速开始 ### 环境要求 - .NET 6.0 SDK - Windows 10/11 ### 构建项目 ```bash cd src dotnet restore dotnet build ``` ### 运行演示 ```bash cd src/MN.Shell.Demo dotnet run ``` ## 使用示例 ### 创建插件 ```csharp public class MyPlugin : PluginBase { protected override void OnLoad() { // 注册菜单 Context.UseMenuProvider(); // 注册工具窗口 Context.UseTool(); // 注册服务 Context.UseService(); } } ``` ### 创建文档窗口 ```csharp public class MyDocumentViewModel : DocumentBase { public MyDocumentViewModel() { Title = "我的文档"; } } ``` ### 创建工具窗口 ```csharp public class MyToolViewModel : ToolBase { public override ToolPosition InitialPosition => ToolPosition.Right; public override double MinWidth => 250; } ``` ### 主题切换 ```csharp // 加载深色主题 colorSchemeLoader.LoadBaseColors(darkColorScheme); colorSchemeLoader.LoadAccentColors(blueAccentScheme); ``` ## 截图 ![深色主题演示](https://gitee.com/eastmike/mn-shell/blob/master/doc/screenshot1.png) ![浅色主题演示](https://gitee.com/eastmike/mn-shell/blob/master/doc/screenshot2.png) ## 许可证 ![GPL-3.0](https://img.shields.io/github/license/mareknalepa/MN.Shell) - **[GPL-3.0](https://opensource.org/licenses/GPL-3.0)** - Copyright 2020 © [Marek Nalepa](https://github.com/mareknalepa/) ## 贡献者 感谢所有为该项目做出贡献的开发者。