1 Star 0 Fork 46

Japhy / TerminalMACS.ManagerForWPF

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

TerminalMACS

一个使用 Prism 作为模块化框架、基于多个开源控件库作为UI控件选择、集成开源 UI 界面设计的 .NET 5 WPF 客户端项目。

English | 简体中文

1. 特性

  • 使用 .NET 5 开发,体验最新 .NET 平台(和 .NET Core 3.1 无缝兼容)

.NET 5 是 .NET Framework 和 .NET Core 的未来,最终将成为一个统一平台,.NET5将包含ASP.NET核心、实体框架核心、WinForms、WPF、Xamarin 和 ML.NET。

  • 基于 Prism 8 搭建模块化框架,方便程序扩展

Prism为程序设计提供指导,旨在帮助用户更加容易的设计和构建丰富、灵活、易于维护WPF桌面应用程序。Prism使用设计模式(如MVVM,复合视图,事件聚合器),帮助你创建一个松耦合的程序。遵循这些设计模式原则,将目标程序解耦成独立的模块。这些类型的应用程序被称为复合应用程序。

  • 已使用或即将使用到多个开源WPF控件库

多种开源 WPF UI 库选择,开发 WPF 项目更方便:MaterialDesignInXamlToolkitHandyControlPanuonUI.SilverAduSkin

  • ECharts

ECharts:pie-doughnut

  • 本地化支持

  • 动态国际化支持

  • 支持主题色动态切换

2. 支持环境

  • .NET 5.0。

3. 当前版本

0.1

4. 链接

5. 项目界面截图

5.1. 关于

关于TerminalMACS

5.2. 首页模块

5.3. 服务端模块

5.4. 客户端模块

5.5. 测试案例

收集全球优秀的开源WPF界面设计

登录注册分类 1

  1. 简单登录窗体设计1

参考视频:C# WPF Material Design UI: Login Window

参考源码:Login2

简单登录窗体设计1

  1. 简单登录窗体设计2

参考视频:C# WPF Material Design UI: Login Window

参考源码:Login1

简单登录窗体设计2

  1. 美食应用登录

参考视频:WPF Food App Login UI Material Design [Speed Design]

美食应用登录

菜单类 2

  1. 抽屉式菜单1

参考视频:C# WPF Material Design UI: Animated Colorful Navigation Drawer

参考源码:AnimatedColorfulMenu

抽屉式菜单1

  1. 抽屉式菜单2

参考视频:WPF - Navigation Drawer / Sidebar Menu | UI Design | C# |

参考源码:Navigation-Drawer-Sidebar-Menu-in-WPF

抽屉式菜单2

  1. 菜单切换用户控件

参考视频:C# WPF Material Design UI: Fast Food Sales

参考源码:Pizzaria1

菜单切换用户控件

  1. 菜单切换动画

参考视频:C# WPF Material Design UI: Animated Menu

参考源码:AnimatedMenu1

菜单切换用户控件

其他界面设计 3

  1. 移动应用仪表盘

参考视频:WPF Dashboard UI – Material Design [Speed Design]

参考源码:WPF-Dashboard-UI-Material-Design-Concept

移动应用仪表盘

  1. 简易仪表盘2

参考视频:WPF Dashboard UI – Material Design [Speed Design]

参考源码:WPF-Dashboard-UI-Material-Design-Concept

ECharts:pie-doughnut

简易仪表盘2

  1. Instagram重新设计

参考视频:C# WPF Material Design UI: Redesign Instagram

参考源码:Instagram

Instagram重新设计

  1. LoLGoal

参考视频:dotnet9

参考源码:dotnet9

LoLGoal

  1. 简易音乐播放器1

参考视频:C# WPF Material Design UI: Dashboard

参考源码:Dashboard

简易音乐播放器1

  1. 百度地图

百度地图

  1. 聊天界面设计

参考视频:

参考源码:Chat

聊天界面设计

  1. 计算器

参考视频:

计算器

更新记录

2020-11-15 添加快捷应用:src\Tools\QuickApp

参考开源项目:

https://github.com/yanjinhuagood/SoftWareHelper

文章

https://www.cnblogs.com/yanjinhua/p/13896894.html

Dotnet9站点介绍文章:https://dotnet9.com/16722.html

快捷应用

功能:

  1. ☑菜单通过配置文件配置,因为操作系统可能装了太多应用,不需要全部加载。

后面计划改成sqlite数据库存储:

{
  "IsPowerOn": true,
  "MenuItemInfos": [
    {
      "FilePath": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
      "IconPath": null,
      "Name": "Google Chrome",
      "Type": 0
    },
    {
      "FilePath": "https://dotnet9.com/",
      "IconPath": "logo.png",
      "Name": "Dotnet9",
      "Type": 1
    },
    {
      "FilePath": "mstsc /v:192.168.1.133",
      "IconPath": "shell.png",
      "Name": "192.168.1.133",
      "Type": 2
    }
  ]
}
  1. ☑支持exe拖拽(或者系统生成的快捷方式拖拽)添加。
private void Grid_Drop(object sender, DragEventArgs e)
{
    try
    {
        var fileName = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
        MenuItemInfo menuItem = new MenuItemInfo() { FilePath = fileName };

        // 快捷方式需要获取目标文件路径
        if (fileName.ToLower().EndsWith("lnk"))
        {
            WshShell shell = new WshShell();
            IWshShortcut wshShortcut = (IWshShortcut)shell.CreateShortcut(fileName);
            menuItem.FilePath = wshShortcut.TargetPath;
        }
        ImageSource imageSource = SystemIcon.GetImageSource(true, menuItem.FilePath);
        System.IO.FileInfo file = new System.IO.FileInfo(fileName);
        if (string.IsNullOrWhiteSpace(file.Extension))
        {
            menuItem.Name = file.Name;
        }
        else
        {
            menuItem.Name = file.Name.Substring(0, file.Name.Length - file.Extension.Length);
        }
        menuItem.Type = MenuItemType.Exe;

        if (ConfigHelper.AddNewMenuItem(menuItem))
        {
            var btn = AddMenuItem(menuItem);
            fishButtons.Children.Add(btn);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private void Grid_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effects = DragDropEffects.Link;
    }
    else
    {
        e.Effects = DragDropEffects.None;
    }
}
{
  "FilePath": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
  "IconPath": null,
  "Name": "Google Chrome",
  "Type": 0
}
  1. ☑支持网址配置(点击打开指定网址,类似网页收藏快捷方式)。
{
  "FilePath": "https://dotnet9.com/",
  "IconPath": "logo.png",
  "Name": "Dotnet9",
  "Type": 1
}
 else if (menuItem.Type == MenuItemType.Web)
{
    Process.Start(new ProcessStartInfo("cmd", $"/c start {menuItem.FilePath}")
    {
        UseShellExecute = false,
        CreateNoWindow = true
    });
}
  1. ☑支持cmd命令配置(比如系统应用mstsc,远程桌面配置目标IP及端口,一键打开连接等)
{
  "FilePath": "mstsc /v:192.168.1.133",
  "IconPath": "shell.png",
  "Name": "192.168.1.133",
  "Type": 2
}
else if( menuItem.Type == MenuItemType.Cmd)
{
    Process p = new Process();
    p.StartInfo.FileName = "cmd";
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardInput = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.CreateNoWindow = true;
    p.Start();

    p.StandardInput.WriteLine($"{menuItem.FilePath} &exit");
    p.StandardInput.AutoFlush = true;
    p.WaitForExit();
    p.Close();
}
  1. ☒提供界面配置菜单
  2. ☒显示图标与文字 ...更多想法还在想

2020-11-16 添加DotNetty服务端与客户端:src\Tools\NettyTest

公司项目有使用到DotNetty与java端Netty项目通信,所以花时间整了这个demo,打算一直维护下去。

功能:

  • 服务端和客户端都采用 C# + WPF开发

空文件

简介

一个使用 Prism 作为模块化框架、基于多个开源控件库作为UI控件选择、集成开源 UI 界面设计的 .NET 5 WPF 客户端项目。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/Japhy/TerminalMACS.ManagerForWPF.git
git@gitee.com:Japhy/TerminalMACS.ManagerForWPF.git
Japhy
TerminalMACS.ManagerForWPF
TerminalMACS.ManagerForWPF
master

搜索帮助