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. K8S的基础概念

    一.Kubernetes介绍 1.什么是Kubernetes? Kubernetes(通常称为K8s,K8s是将8个字母"ubernete"替换为"8"的缩写) ...

  2. nodejs 连接MSSQL数据库 Setting the TLS ServerName to an IP address is not permitted by RFC 6066. This will be ignored in a future version

    初学nodejs连接lmssql数据库,测试报错,查了很多资料,最后发现报这个错主要是mssql不支持https安全连接,如果不考虑这个,仅做测试连接,就很容易,直接改个参数就可以了: const s ...

  3. C# 动态操作 控件位置绑定 [ Anchor ] 属性

    注: 1.此类属于非常用类,只因本人需要编写的...顺便刷贴一下 2.对于初学,其中的枚举使用可以为你加深一点印象 以下为操作类代码: public class AchCtrer { #region ...

  4. css3 新增的特性有哪些?

    css3 选择器. css3边框(borders) css3 背景 css3 渐变 css3 文本效果 css3 字体(@font-size规则) css3 转化和变形 1)2D转换方法 2)3D转换 ...

  5. C++初识指针之一

    新手学习C/C++都跳不过去的地方,就是指针,用的话,确实好用,但是概念比较绕, 指针的通俗说法 1.简单的来说,就是说每一个变量,在电脑内都占一个地方,这个地方用一个16进掉的编号来进行标记,类似于 ...

  6. 记录下老dropbox的使用

    32-bit: wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf - 64-bit: wget ...

  7. Go_day06

    Go基础语法 错误和异常 什么是错误error 错误是指可鞥出现问题的地方出现了问题,这种情况在预料之中 func main() { //打开一个文件 file, err := os.Open(&qu ...

  8. win10安装node-red遇到的问题及解决方法

    1.安装失败 原因:没有管理员权限,需要用powershell(管理员)来安装 2.安装完成后运行失败 出现下面的情况 PS C:\WINDOWS\system32> node-rednode- ...

  9. mybatisplus数据层标准开发---分页功能

    1.创建一个拦截器类 package com.itheima.config; import com.baomidou.mybatisplus.extension.plugins.MybatisPlus ...

  10. vue 前端项目创建

    一.创建项目 将vue-admin-template-master 模板放入创建的 VS code 的工作空间.重命名为自己的项目. 模块获取方法:关注"Java程序员进阶",回复 ...