1.WPF UI - 现代化设计的开源 WPF 框架

WPF UI 是一个基于 C# 开发的, 拥有 4k star 的开源 UI 框架。WPF UI 在 WPF 的基础上,提供了更多的现代化,流利的,直观的设计和组件。重要的是,WPF UI 完全免费!

如果你对 WPF 比较熟悉,那么可以很快的上手这个 UI 框架,并集成中项目中去。WPF UI 提供了完善的使用文档,对新手非常友好。

截图

如何使用

  1. 使用 Visual Studio 中的 Nuget 包管理器,安装 WPF-UI

  2. 更新 App.xaml 文件,如下

    <Application
    xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
    <Application.Resources>
    <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
    <ui:ThemesDictionary Theme="Dark" />
    <ui:ControlsDictionary />
    </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    </Application.Resources>
    </Application>
  3. 试试 WPF-UI 的按钮, 尽情使用吧!

    <ui:UiWindow
    ...
    xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
    <Grid>
    <ui:Button
    Content="Hello World"
    Icon="Fluent24"/>
    </Grid>
    </ui:UiWindow>

项目地址: https://wpfui.lepo.co/

2.开源力作!使用 Blazor 和 C# 构建 K8s Dashboard

blazor-k8s

blazor-k8s 是一个开源项目,它使用了 blazor 和 C# 构建了 k8s dashboard。允许用户在界面上直接操作 k8s,进行资源管理。

部署

1 k8s部署体验

一键安装

kubectl apply -f https://raw.githubusercontent.com/weibaohui/blazork8s/main/deploy/deployment.yaml

访问

默认使用了nodePort开放,请访问31999端口 http://NodePortIP:31999

docker 体验

启动服务器

docker run -d --name blazork8s  -v ~/.kube/:/root/.kube/ -p 4001:443 -p 4000:80 ghcr.io/weibaohui/blazork8s:latest

界面预览

项目地址:https://github.com/weibaohui/blazork8s

3. Dotnet 加解密算法库

CryptoNet

CryptoNet 是一个简单、快速且轻量级的非对称和对称加密 NuGet 库,支持跨平台 Windows、Linux。不依赖其他库, 100% C# 实现。

CryptoNet 可以通过两种方式使用:

  • 对称方式
  • 非对称方式

对称方式

您使用相同的密钥进行加密和解密。

非对称方式

通过非对称方式,CryptoNet 可以使用自己生成的 RSA 密钥对(私钥/公钥)来加密和解密内容。

您可以将私钥存储在一台或多台机器上。公钥可以轻松分发给所有客户端。

使用示例

1.使用对称密钥加密和解密内容

在下面示例中,CryptoNetAes 生成随机的密钥和 iv。

ICryptoNet cryptoNet = new CryptoNetAes();
var key = cryptoNet.ExportKey(); ICryptoNet encryptClient = new CryptoNetAes(key);
var encrypt = encryptClient.EncryptFromString(ConfidentialDummyData); ICryptoNet decryptClient = new CryptoNetAes(key);
var decrypt = decryptClient.DecryptToString(encrypt); Debug.Assert(ConfidentialDummyData == decrypt);

2.使用导出和导入, 自己生成的对称密钥,来加密和解密内容

ICryptoNet cryptoNet = new CryptoNetAes();
var file = new FileInfo(SymmetricKeyFile);
cryptoNet.ExportKeyAndSave(file); Debug.Assert(File.Exists(file.FullName)); var encrypt = cryptoNet.EncryptFromString(ConfidentialDummyData); ICryptoNet cryptoNetKeyImport = new CryptoNetAes(file);
var decrypt = cryptoNetKeyImport.DecryptToString(encrypt); Debug.Assert(ConfidentialDummyData == decrypt);

3. 生成非对称 Rsa 密钥对,导出私钥和公钥,使用公钥加密和使用私钥解密

ICryptoNet cryptoNet = new CryptoNetRsa();

cryptoNet.ExportKeyAndSave(new FileInfo(PrivateKeyFile), true);
cryptoNet.ExportKeyAndSave(new FileInfo(PublicKeyFile), false); Debug.Assert(File.Exists(new FileInfo(PrivateKeyFile).FullName));
Debug.Assert(File.Exists(new FileInfo(PublicKeyFile).FullName)); ICryptoNet cryptoNetPubKey = new CryptoNetRsa(new FileInfo(PublicKeyFile));
var encrypt = cryptoNetPubKey.EncryptFromString(ConfidentialDummyData); ICryptoNet cryptoNetPriKey = new CryptoNetRsa(new FileInfo(PrivateKeyFile));
var decrypt = cryptoNetPriKey.DecryptToString(encrypt); Debug.Assert(ConfidentialDummyData == decrypt);

4. 使用 X509 证书用公钥加密,然后用私钥解密

X509Certificate2? certificate = CryptoNetUtils.GetCertificateFromStore("CN=Maytham");

ICryptoNet cryptoNetWithPublicKey = new CryptoNetRsa(certificate, KeyType.PublicKey);
var encryptWithPublicKey = cryptoNetWithPublicKey.EncryptFromString(ConfidentialDummyData); ICryptoNet cryptoNetWithPrivateKey = new CryptoNetRsa(certificate, KeyType.PrivateKey);
var decryptWithPrivateKey = cryptoNetWithPrivateKey.DecryptToString(encryptWithPublicKey); Debug.Assert(ConfidentialDummyData == decryptWithPrivateKey);

项目地址: https://github.com/maythamfahmi/CryptoNet

【Dotnet 工具箱】WPF UI - 现代化设计的开源 WPF 框架的更多相关文章

  1. WPF 多线程 UI:设计一个异步加载 UI 的容器

    对于 WPF 程序,如果你有某一个 UI 控件非常复杂,很有可能会卡住主 UI,给用户软件很卡的感受.但如果此时能有一个加载动画,那么就不会感受到那么卡顿了.UI 的卡住不同于 IO 操作或者密集的 ...

  2. UI-WPF_UI:WPF UI - DMSkin官方网站

    ylbtech-UI-WPF_UI:WPF UI - DMSkin官方网站 1.返回顶部 1. QQ: 944095635 DMSkin.com 首页 论坛 定制 博客  联系   DMSkin 3. ...

  3. 谈谈UI架构设计的演化

    谈谈UI架构设计的演化 经典MVC 在1979年,经典MVC模式被提出. 在当时,人们一直试图将纯粹描述思维中的对象与跟计算机环境打交道的代码隔离开来,而Trygve Reenskaug在跟一些人的讨 ...

  4. C#如何在VS2015 2017版本中编写WPF UI界面引入第三方SVG图形

    原文:C#如何在VS2015 2017版本中编写WPF UI界面引入第三方SVG图形 在VS2015 2017版本中编写WPF UI界面引入第三方SVG图形     最近在写WPF界面的时候遇到一个情 ...

  5. 【转】21个免费的UI界面设计工具、资源及网站

    本文将介绍21个免费的UI界面设计工具.资源及网站,如果你在做用户体验设计.界面设计.产品设计.JS前段开发.手机产品设计以及iPad和平板电脑产品设计,不妨来看看. AD: 2013云计算架构师峰会 ...

  6. 推荐一个IT老鸟肝了2月有余的免费开源WPF企业级开发框架

    一个新学WPF的IT老鸟,肝了2个月做了这么一个WPF企业级开发框架,站长clone学习,觉得甚是不错.这是一个使用了Prism搭建的插件式框架,封装了DataGrid的使用,使整个框架子模块简单易学 ...

  7. Android开发1:基本UI界面设计——布局和组件

    前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望 ...

  8. 不容错过!2016年度优秀UI/UX设计文章

    本文整理了一些2016年度最受欢迎的文章,例如有关UI / UX设计的理论知识,书籍和工具,如何做出更好的设计的方法和建议,以及新的设计趋势. 1. 2017年用户体验设计趋势 我们期待着2017年用 ...

  9. 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)

    使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源) 先直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间 ...

  10. 移动UI布局设计原则(一)

    学习笔记1 Learning notes one 移动UI布局设计的布局原则 Layout Principles of Mobile UI Layout Design 移动UI视觉交互设计法则 Des ...

随机推荐

  1. STL练习-看病要排队

    题目http://acm.hdu.edu.cn/showproblem.php?pid=1873   看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的 ...

  2. Crypto入门 (五)混合编码

    前言: 这次得题目从本质上说没有什么难点,是多次利用base64和16进制编码,层层解开就好,通过这题得代码编写能很好得锻炼python代码能力,一起加油,尝试着自己写写看看把. 混合编码: 题目:J ...

  3. Electron问题记录01:关于electron的notification在win10下不显示问题

    0.问题描述 在学习electron官网的notification例程时, 使用官网的代码运行时无法按照预期弹出窗口,在查询官网时发现以下解决方法. 官网解决方法:在 Windows 10 上,您的应 ...

  4. 利用网络复制安装额外域控制器、利用介质安装额外域控制器、安装RODC额外域控制器

    一.拥有多台域控制器的优势 1.分担用户身份验证的负担,改善用户登录的效率 2.容错功能:若有域控制器故障,此时仍然可以有其他正常的域控制器来继续提供服务,因此对用户的服务并不会停止 二.系统提供两种 ...

  5. 二、pycharm的安装

    1.python安装教程在上一篇已描述,详情查看: 2.安装pycharm 首先从网站下载pycharm:链接为:http://www.jetbrains.com/pycharm/download/# ...

  6. 21206134-赵景涛-第三次blog总结

    一.前言: 本次Blog是对之前发布的PTA题目集的总结性Blog,这几次的作业题量,难度都不大,但都趋近于完成一整个系统,而非只实现部分的功能.题目集九.十也不在给出类图,而是要求自己设计.我认为这 ...

  7. axios请求本地文件404

    解决办法:将json文件放在public文件夹下 请求页面的url路径这样写,不能加上../public/这样的路径,直接就是/aa.json

  8. v2即时通讯的应用

    1.建立webscoket.js: import Vue from 'vue' import { Message } from 'element-ui' let v = new Vue() v.$me ...

  9. 21.C++的对象模型

    程序1: #pragma warning(disable:4996) //2022年9月21日19:20:29 #include <iostream> using namespace st ...

  10. git初始化流程

    1. 添加 SSH key 一台主机仅需要设置一次 1.1 检查主机是否已经有 SSH key 只需要检查~/.ssh下是否存在 id_rsa.pub 或 id_dsa.pub.若已存在,跳转至步骤3 ...