iEPC数字化全过程工程管理平台(以下简称 -iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI -等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
+ 有东西被加密了, 请输入密码查看Vue
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
-
+
@@ -1258,7 +1258,7 @@
- 数组下标无限循环算法
+ C# 读取嵌入的文件
@@ -1303,7 +1303,7 @@
本文字数:
- 204
+ 283
@@ -1321,10 +1321,10 @@
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+ 如何在 C# 中读取嵌入的文件资源?
@@ -1371,13 +1371,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/24/index.html b/page/24/index.html
index d3cadbd8f8..9d5829e799 100644
--- a/page/24/index.html
+++ b/page/24/index.html
@@ -205,7 +205,7 @@ 星辰大海
-
+
@@ -223,7 +223,7 @@ 星辰大海
- C# 读取嵌入的文件
+ 数组下标无限循环算法
@@ -268,7 +268,7 @@
本文字数:
- 283
+ 204
@@ -286,10 +286,10 @@
- 如何在 C# 中读取嵌入的文件资源?
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/25/index.html b/page/25/index.html
index bb2a5a17c2..4979254895 100644
--- a/page/25/index.html
+++ b/page/25/index.html
@@ -1360,13 +1360,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/26/index.html b/page/26/index.html
index fcb8f1a8e5..2e42cb9474 100644
--- a/page/26/index.html
+++ b/page/26/index.html
@@ -1396,13 +1396,13 @@ 什么是MongoDB副本集
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/27/index.html b/page/27/index.html
index f887c3d1ff..598b744fd8 100644
--- a/page/27/index.html
+++ b/page/27/index.html
@@ -1346,13 +1346,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/28/index.html b/page/28/index.html
index 85a87ff4e3..8bbf468ce1 100644
--- a/page/28/index.html
+++ b/page/28/index.html
@@ -1353,13 +1353,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/29/index.html b/page/29/index.html
index 2e7b9cc8f9..4ce37ca492 100644
--- a/page/29/index.html
+++ b/page/29/index.html
@@ -1382,13 +1382,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/3/index.html b/page/3/index.html
index da247b88ad..65aa7b2041 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -1330,13 +1330,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/30/index.html b/page/30/index.html
index 598042768e..679ff9451b 100644
--- a/page/30/index.html
+++ b/page/30/index.html
@@ -547,7 +547,7 @@
-
+
@@ -565,7 +565,7 @@
- American accent practice
+ American accent
@@ -602,14 +602,14 @@
本文字数:
- 308
+ 2.1k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -620,10 +620,10 @@
- There are some experience in my studying.
+ There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- 数组下标无限循环算法 + C# 读取嵌入的文件
本文字数:
- 204
+ 283
@@ -1321,10 +1321,10 @@
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+ 如何在 C# 中读取嵌入的文件资源?
@@ -1371,13 +1371,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/24/index.html b/page/24/index.html
index d3cadbd8f8..9d5829e799 100644
--- a/page/24/index.html
+++ b/page/24/index.html
@@ -205,7 +205,7 @@ 星辰大海
-
+
@@ -223,7 +223,7 @@ 星辰大海
- C# 读取嵌入的文件
+ 数组下标无限循环算法
@@ -268,7 +268,7 @@
本文字数:
- 283
+ 204
@@ -286,10 +286,10 @@
- 如何在 C# 中读取嵌入的文件资源?
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/25/index.html b/page/25/index.html
index bb2a5a17c2..4979254895 100644
--- a/page/25/index.html
+++ b/page/25/index.html
@@ -1360,13 +1360,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/26/index.html b/page/26/index.html
index fcb8f1a8e5..2e42cb9474 100644
--- a/page/26/index.html
+++ b/page/26/index.html
@@ -1396,13 +1396,13 @@ 什么是MongoDB副本集
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/27/index.html b/page/27/index.html
index f887c3d1ff..598b744fd8 100644
--- a/page/27/index.html
+++ b/page/27/index.html
@@ -1346,13 +1346,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/28/index.html b/page/28/index.html
index 85a87ff4e3..8bbf468ce1 100644
--- a/page/28/index.html
+++ b/page/28/index.html
@@ -1353,13 +1353,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/29/index.html b/page/29/index.html
index 2e7b9cc8f9..4ce37ca492 100644
--- a/page/29/index.html
+++ b/page/29/index.html
@@ -1382,13 +1382,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/3/index.html b/page/3/index.html
index da247b88ad..65aa7b2041 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -1330,13 +1330,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/30/index.html b/page/30/index.html
index 598042768e..679ff9451b 100644
--- a/page/30/index.html
+++ b/page/30/index.html
@@ -547,7 +547,7 @@
-
+
@@ -565,7 +565,7 @@
- American accent practice
+ American accent
@@ -602,14 +602,14 @@
本文字数:
- 308
+ 2.1k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -620,10 +620,10 @@
- There are some experience in my studying.
+ There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+如何在 C# 中读取嵌入的文件资源?
@@ -1371,13 +1371,13 @@- 745k + 746k - 11:17 + 11:18
星辰大海
星辰大海
- C# 读取嵌入的文件 + 数组下标无限循环算法
本文字数:
- 283
+ 204
@@ -286,10 +286,10 @@
- 如何在 C# 中读取嵌入的文件资源?
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/25/index.html b/page/25/index.html
index bb2a5a17c2..4979254895 100644
--- a/page/25/index.html
+++ b/page/25/index.html
@@ -1360,13 +1360,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/26/index.html b/page/26/index.html
index fcb8f1a8e5..2e42cb9474 100644
--- a/page/26/index.html
+++ b/page/26/index.html
@@ -1396,13 +1396,13 @@ 什么是MongoDB副本集
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/27/index.html b/page/27/index.html
index f887c3d1ff..598b744fd8 100644
--- a/page/27/index.html
+++ b/page/27/index.html
@@ -1346,13 +1346,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/28/index.html b/page/28/index.html
index 85a87ff4e3..8bbf468ce1 100644
--- a/page/28/index.html
+++ b/page/28/index.html
@@ -1353,13 +1353,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/29/index.html b/page/29/index.html
index 2e7b9cc8f9..4ce37ca492 100644
--- a/page/29/index.html
+++ b/page/29/index.html
@@ -1382,13 +1382,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/3/index.html b/page/3/index.html
index da247b88ad..65aa7b2041 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -1330,13 +1330,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/30/index.html b/page/30/index.html
index 598042768e..679ff9451b 100644
--- a/page/30/index.html
+++ b/page/30/index.html
@@ -547,7 +547,7 @@
-
+
@@ -565,7 +565,7 @@
- American accent practice
+ American accent
@@ -602,14 +602,14 @@
本文字数:
- 308
+ 2.1k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -620,10 +620,10 @@
- There are some experience in my studying.
+ There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
如何在 C# 中读取嵌入的文件资源?
+在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
@@ -1364,13 +1364,13 @@- 745k + 746k - 11:17 + 11:18
简介
- 745k + 746k - 11:17 + 11:18什么是MongoDB副本集
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
-
+
@@ -565,7 +565,7 @@
- American accent practice
+ American accent
@@ -602,14 +602,14 @@
本文字数:
- 308
+ 2.1k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -620,10 +620,10 @@
- There are some experience in my studying.
+ There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- American accent practice + American accent
本文字数: - 308 + 2.1k 阅读时长 ≈ - 1 分钟 + 2 分钟
- There are some experience in my studying.
+ There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
There are some experience in my studying.
+There are the notes of American accent.
@@ -654,7 +654,7 @@
-
+
@@ -672,7 +672,7 @@
- American accent
+ American accent practice
@@ -709,14 +709,14 @@
本文字数:
- 2.1k
+ 308
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -727,10 +727,10 @@
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- American accent + American accent practice
本文字数: - 2.1k + 308 阅读时长 ≈ - 2 分钟 + 1 分钟
- There are the notes of American accent.
+ There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
There are the notes of American accent.
+There are some experience in my studying.
@@ -1116,7 +1116,7 @@
-
+
@@ -1134,7 +1134,7 @@
- 优先社区二次开发学习
+ MS中曲线总结
@@ -1175,14 +1175,14 @@
本文字数:
- 1.9k
+ 130
阅读时长 ≈
- 2 分钟
+ 1 分钟
@@ -1193,10 +1193,14 @@
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- 优先社区二次开发学习 + MS中曲线总结
本文字数: - 1.9k + 130 阅读时长 ≈ - 2 分钟 + 1 分钟
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+MS +二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的 +API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用 +MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
@@ -1227,7 +1231,7 @@
-
+
@@ -1245,7 +1249,7 @@
- MS中曲线总结
+ 优先社区二次开发学习
@@ -1286,14 +1290,14 @@
本文字数:
- 130
+ 1.9k
阅读时长 ≈
- 1 分钟
+ 2 分钟
@@ -1304,14 +1308,10 @@
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- MS中曲线总结 + 优先社区二次开发学习
本文字数: - 130 + 1.9k 阅读时长 ≈ - 1 分钟 + 2 分钟
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/31/index.html b/page/31/index.html
index 4023cb3fa8..8dcedf18a8 100644
--- a/page/31/index.html
+++ b/page/31/index.html
@@ -657,7 +657,7 @@
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
MS -二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的 -API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用 -MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
+最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
@@ -1358,13 +1358,13 @@- 745k + 746k - 11:17 + 11:18
-
+
@@ -675,7 +675,7 @@
- PropertyGrid 中实现动态的下拉选项
+ PropertyGrid 中只显示部分属性
@@ -716,14 +716,14 @@
本文字数:
- 1.1k
+ 12k
阅读时长 ≈
- 1 分钟
+ 11 分钟
@@ -734,12 +734,12 @@
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- PropertyGrid 中实现动态的下拉选项 + PropertyGrid 中只显示部分属性
本文字数: - 1.1k + 12k 阅读时长 ≈ - 1 分钟 + 11 分钟
- 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
-(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性 -(TypeConverterAttribute) 来自定义下拉选项。
-这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
+最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual +Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
@@ -770,7 +770,7 @@
-
+
@@ -788,7 +788,7 @@
- PropertyGrid 中只显示部分属性
+ PropertyGrid 中实现动态的下拉选项
@@ -829,14 +829,14 @@
本文字数:
- 12k
+ 1.1k
阅读时长 ≈
- 11 分钟
+ 1 分钟
@@ -847,12 +847,12 @@
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- PropertyGrid 中只显示部分属性 + PropertyGrid 中实现动态的下拉选项
本文字数: - 12k + 1.1k 阅读时长 ≈ - 11 分钟 + 1 分钟
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ 在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性
+(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/32/index.html b/page/32/index.html
index 1bc5aaea2b..0e00bad4e6 100644
--- a/page/32/index.html
+++ b/page/32/index.html
@@ -1034,7 +1034,7 @@
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual -Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+在使用 PropertyGrid 控件中,有时候我们在属性的上面添加类型转换特性 +(TypeConverterAttribute) 来自定义下拉选项。
+这个时候,我们可能会有这样的要求,一个属性的改变会导致另一个属性的候选项发生改变,也就是说,我们需要为特定属性设置动态的下拉选项。
@@ -1350,13 +1350,13 @@- 745k + 746k - 11:17 + 11:18
-
+
@@ -1052,7 +1052,7 @@
- vue通信及组件之间传值
+ 16款优秀的Vue UI组件库推荐
@@ -1101,14 +1101,14 @@
本文字数:
- 1.2k
+ 5k
阅读时长 ≈
- 1 分钟
+ 5 分钟
@@ -1119,18 +1119,16 @@
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- vue通信及组件之间传值 + 16款优秀的Vue UI组件库推荐
本文字数: - 1.2k + 5k 阅读时长 ≈ - 1 分钟 + 5 分钟
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
常用 vue 通信大概有这几种方式进行:
--
-
- 组件间的父子之间的传值 -
- 组件间的子父之间的传值 -
- 非组件间的组件间的传值(简称:EventBus) -
- sessionStorage 缓存传值 -
- 路由带参数跳转进行传值 -
- vuex 进行传值 -
Vue +是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。 +在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。 +开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。 +在选择Vue +UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue +UI组件库。
@@ -1161,7 +1159,7 @@
-
+
@@ -1179,7 +1177,7 @@
- 16款优秀的Vue UI组件库推荐
+ vue通信及组件之间传值
@@ -1228,14 +1226,14 @@
本文字数:
- 5k
+ 1.2k
阅读时长 ≈
- 5 分钟
+ 1 分钟
@@ -1246,16 +1244,18 @@
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- 16款优秀的Vue UI组件库推荐 + vue通信及组件之间传值
本文字数: - 5k + 1.2k 阅读时长 ≈ - 5 分钟 + 1 分钟
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
@@ -1409,13 +1409,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/33/index.html b/page/33/index.html
index 94fa2eff97..eee28bc5e7 100644
--- a/page/33/index.html
+++ b/page/33/index.html
@@ -433,7 +433,7 @@
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/34/index.html b/page/34/index.html
index dfb3008ac4..46600bdcf2 100644
--- a/page/34/index.html
+++ b/page/34/index.html
@@ -737,7 +737,7 @@
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
Vue -是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。 -在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。 -开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。 -在选择Vue -UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue -UI组件库。
+常用 vue 通信大概有这几种方式进行:
+-
+
- 组件间的父子之间的传值 +
- 组件间的子父之间的传值 +
- 非组件间的组件间的传值(简称:EventBus) +
- sessionStorage 缓存传值 +
- 路由带参数跳转进行传值 +
- vuex 进行传值 +
- 745k + 746k - 11:17 + 11:18
-
+
@@ -451,7 +451,7 @@
- RESTful API 规范
+ 最全最详细 http 状态码介绍
@@ -492,14 +492,14 @@
本文字数:
- 67
+ 11k
阅读时长 ≈
- 1 分钟
+ 10 分钟
@@ -510,10 +510,20 @@
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
- RESTful API 规范 + 最全最详细 http 状态码介绍
本文字数: - 67 + 11k 阅读时长 ≈ - 1 分钟 + 10 分钟
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-
+ HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
+
+
+
+ 阅读全文 »
+
+
+
+
@@ -539,7 +549,7 @@
-
+
@@ -557,7 +567,7 @@
- 最全最详细 http 状态码介绍
+ RESTful API 规范
@@ -598,14 +608,14 @@
本文字数:
- 11k
+ 67
阅读时长 ≈
- 10 分钟
+ 1 分钟
@@ -616,20 +626,10 @@
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
- +HTTP 响应状态代码指示特定 HTTP
+请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
+(500
–599
)。状态代码由 section 10 of RFC
+2616定义
- 最全最详细 http 状态码介绍 + RESTful API 规范
本文字数: - 11k + 67 阅读时长 ≈ - 10 分钟 + 1 分钟
- HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
-
-
-
- 阅读全文 »
-
-
-
-
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
@@ -1364,13 +1364,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
HTTP 响应状态代码指示特定 HTTP
-请求是否已成功完成。响应分为五类:信息响应(100
–199
),成功响应(200
–299
),重定向(300
–399
),客户端错误(400
–499
)和服务器错误
-(500
–599
)。状态代码由 section 10 of RFC
-2616定义
HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+
-
+
@@ -755,7 +755,7 @@
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -800,14 +800,14 @@
本文字数:
- 908
+ 9.9k
阅读时长 ≈
- 1 分钟
+ 9 分钟
@@ -818,16 +818,11 @@
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
- WPF MVVM Stylet使用文档(中文)12-BindableCollection + WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
本文字数: - 908 + 9.9k 阅读时长 ≈ - 1 分钟 + 9 分钟
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+ 简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@ 概述(Overview)
-
+
@@ -876,7 +871,7 @@ 概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
@@ -921,14 +916,14 @@
本文字数:
- 9.9k
+ 908
阅读时长 ≈
- 9 分钟
+ 1 分钟
@@ -939,11 +934,16 @@
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
简介(Introduction)
+想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
@@ -858,7 +853,7 @@概述(Overview)
概述(Overview)
- WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase + WPF MVVM Stylet使用文档(中文)12-BindableCollection
本文字数: - 9.9k + 908 阅读时长 ≈ - 9 分钟 + 1 分钟
- 简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
@@ -1210,7 +1210,7 @@
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3FW7343.html b/posts/2020/3FW7343.html
index e33ee358ef..87c2229135 100644
--- a/posts/2020/3FW7343.html
+++ b/posts/2020/3FW7343.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJ4VTC.html b/posts/2020/3GJ4VTC.html
index 8871dcae3f..06ce35ada8 100644
--- a/posts/2020/3GJ4VTC.html
+++ b/posts/2020/3GJ4VTC.html
@@ -560,13 +560,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3GJFFVV.html b/posts/2020/3GJFFVV.html
index db231469b7..25dbc79cdc 100644
--- a/posts/2020/3GJFFVV.html
+++ b/posts/2020/3GJFFVV.html
@@ -358,13 +358,13 @@
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3H6MPWC.html b/posts/2020/3H6MPWC.html
index bde234fb92..81682e1f86 100644
--- a/posts/2020/3H6MPWC.html
+++ b/posts/2020/3H6MPWC.html
@@ -417,13 +417,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3R00ZSM.html b/posts/2020/3R00ZSM.html
index 57446326e4..f75ce21920 100644
--- a/posts/2020/3R00ZSM.html
+++ b/posts/2020/3R00ZSM.html
@@ -499,13 +499,13 @@ 设计模式(Design Mode)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3W94T82.html b/posts/2020/3W94T82.html
index 0414582061..261246ab3d 100644
--- a/posts/2020/3W94T82.html
+++ b/posts/2020/3W94T82.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4JEF7M.html b/posts/2020/4JEF7M.html
index d703030c5f..989b42e143 100644
--- a/posts/2020/4JEF7M.html
+++ b/posts/2020/4JEF7M.html
@@ -419,13 +419,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/4NQDGJ.html b/posts/2020/4NQDGJ.html
index eee7eeb2f9..bf934337de 100644
--- a/posts/2020/4NQDGJ.html
+++ b/posts/2020/4NQDGJ.html
@@ -387,13 +387,13 @@ 定制日志
@@ -427,13 +427,13 @@ 定制日志
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/5JY0NS.html b/posts/2020/5JY0NS.html
index 75f68b9ce7..7277bbb7b5 100644
--- a/posts/2020/5JY0NS.html
+++ b/posts/2020/5JY0NS.html
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/6W94V6.html b/posts/2020/6W94V6.html
index a1d0392394..7da05abc47 100644
--- a/posts/2020/6W94V6.html
+++ b/posts/2020/6W94V6.html
@@ -414,13 +414,13 @@ 判断点与曲线的关系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/AEXRX4.html b/posts/2020/AEXRX4.html
index 0fc8d81fe2..d0ed9de0b8 100644
--- a/posts/2020/AEXRX4.html
+++ b/posts/2020/AEXRX4.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/B9PE5D.html b/posts/2020/B9PE5D.html
index 49fd3bef6d..7cdd548155 100644
--- a/posts/2020/B9PE5D.html
+++ b/posts/2020/B9PE5D.html
@@ -444,8 +444,8 @@ Resource And Thanks
@@ -484,13 +484,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/CCGDMG.html b/posts/2020/CCGDMG.html
index f30e77831b..8e4aa014c2 100644
--- a/posts/2020/CCGDMG.html
+++ b/posts/2020/CCGDMG.html
@@ -512,13 +512,13 @@ 删除后台代码!(Delete
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/DGFHG1.html b/posts/2020/DGFHG1.html
index 7932eb2c94..3aa1c5cc47 100644
--- a/posts/2020/DGFHG1.html
+++ b/posts/2020/DGFHG1.html
@@ -447,13 +447,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/JJQETR.html b/posts/2020/JJQETR.html
index 2d256d3467..174e9ee8f8 100644
--- a/posts/2020/JJQETR.html
+++ b/posts/2020/JJQETR.html
@@ -365,8 +365,8 @@ 详细介绍
@@ -400,13 +400,13 @@ 详细介绍
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K2C2JM.html b/posts/2020/K2C2JM.html
index 998509b16c..f0c766efc8 100644
--- a/posts/2020/K2C2JM.html
+++ b/posts/2020/K2C2JM.html
@@ -418,13 +418,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/K6BTSD.html b/posts/2020/K6BTSD.html
index 92ab3254bd..d24282e1a8 100644
--- a/posts/2020/K6BTSD.html
+++ b/posts/2020/K6BTSD.html
@@ -352,13 +352,13 @@
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MDKVCV.html b/posts/2020/MDKVCV.html
index 917c6b888a..b6c0a9fb0c 100644
--- a/posts/2020/MDKVCV.html
+++ b/posts/2020/MDKVCV.html
@@ -465,13 +465,13 @@ 名词解释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MKZP4Q.html b/posts/2020/MKZP4Q.html
index f850bd9f5f..079189a72f 100644
--- a/posts/2020/MKZP4Q.html
+++ b/posts/2020/MKZP4Q.html
@@ -385,8 +385,8 @@ 一个部件附近元素取得
@@ -425,13 +425,13 @@ 一个部件附近元素取得
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MV7E84.html b/posts/2020/MV7E84.html
index 4e3f3f7cfd..fc56af82f2 100644
--- a/posts/2020/MV7E84.html
+++ b/posts/2020/MV7E84.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/MWKK9T.html b/posts/2020/MWKK9T.html
index eb63226feb..137afee1e3 100644
--- a/posts/2020/MWKK9T.html
+++ b/posts/2020/MWKK9T.html
@@ -686,13 +686,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/P0HE12.html b/posts/2020/P0HE12.html
index 976999a2bb..3c257ccb12 100644
--- a/posts/2020/P0HE12.html
+++ b/posts/2020/P0HE12.html
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PBS08B.html b/posts/2020/PBS08B.html
index 66e84b7079..6c8837bd15 100644
--- a/posts/2020/PBS08B.html
+++ b/posts/2020/PBS08B.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/PWMVCG.html b/posts/2020/PWMVCG.html
index 8dbafb107d..b721a4a567 100644
--- a/posts/2020/PWMVCG.html
+++ b/posts/2020/PWMVCG.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/QQM15G.html b/posts/2020/QQM15G.html
index 140e381e0b..2b0eb0c32a 100644
--- a/posts/2020/QQM15G.html
+++ b/posts/2020/QQM15G.html
@@ -430,13 +430,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S47705.html b/posts/2020/S47705.html
index 118d389e25..688dde5c85 100644
--- a/posts/2020/S47705.html
+++ b/posts/2020/S47705.html
@@ -392,13 +392,13 @@ 来源
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/S5J92W.html b/posts/2020/S5J92W.html
index fab86f86db..cd19302614 100644
--- a/posts/2020/S5J92W.html
+++ b/posts/2020/S5J92W.html
@@ -2089,13 +2089,13 @@ 9、致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WCF13S.html b/posts/2020/WCF13S.html
index ced26033a6..8fcf037570 100644
--- a/posts/2020/WCF13S.html
+++ b/posts/2020/WCF13S.html
@@ -442,13 +442,13 @@ 重置后恢复
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/WXDAQ3.html b/posts/2020/WXDAQ3.html
index 2108412de4..620f00d61d 100644
--- a/posts/2020/WXDAQ3.html
+++ b/posts/2020/WXDAQ3.html
@@ -374,8 +374,8 @@ 前后端 API 管理
@@ -414,13 +414,13 @@ 前后端 API 管理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/XDTNKH.html b/posts/2020/XDTNKH.html
index 39b678e91c..6f5a234595 100644
--- a/posts/2020/XDTNKH.html
+++ b/posts/2020/XDTNKH.html
@@ -1132,13 +1132,13 @@ 扩充阅读
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/YY2KY2.html b/posts/2020/YY2KY2.html
index 214fd096cc..97ec0dbf4b 100644
--- a/posts/2020/YY2KY2.html
+++ b/posts/2020/YY2KY2.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/ZWWE36.html b/posts/2020/ZWWE36.html
index c865629007..124394d2bc 100644
--- a/posts/2020/ZWWE36.html
+++ b/posts/2020/ZWWE36.html
@@ -467,13 +467,13 @@ 最优的对象声明方式
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/0CYX0R.html b/posts/2021/0CYX0R.html
index 7b2794ef29..e7770842a9 100644
--- a/posts/2021/0CYX0R.html
+++ b/posts/2021/0CYX0R.html
@@ -361,8 +361,8 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/10XS5HK.html b/posts/2021/10XS5HK.html
index 0d4e77c947..f57eb827cd 100644
--- a/posts/2021/10XS5HK.html
+++ b/posts/2021/10XS5HK.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/119HBCA.html b/posts/2021/119HBCA.html
index fdffbb6c48..1bc717bb3c 100644
--- a/posts/2021/119HBCA.html
+++ b/posts/2021/119HBCA.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/11CAJEB.html b/posts/2021/11CAJEB.html
index 462859a3f0..81e33a9954 100644
--- a/posts/2021/11CAJEB.html
+++ b/posts/2021/11CAJEB.html
@@ -414,13 +414,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1224JG.html b/posts/2021/1224JG.html
index 8d0443f7b6..e8ca14df13 100644
--- a/posts/2021/1224JG.html
+++ b/posts/2021/1224JG.html
@@ -542,13 +542,13 @@ 其它参考文档
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/13VFWMA.html b/posts/2021/13VFWMA.html
index f8af848f0b..efe334da77 100644
--- a/posts/2021/13VFWMA.html
+++ b/posts/2021/13VFWMA.html
@@ -415,13 +415,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17DF183.html b/posts/2021/17DF183.html
index 6e393b66b7..a1333a2ab1 100644
--- a/posts/2021/17DF183.html
+++ b/posts/2021/17DF183.html
@@ -491,13 +491,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/17EC6DQ.html b/posts/2021/17EC6DQ.html
index 392862def2..8083a0405f 100644
--- a/posts/2021/17EC6DQ.html
+++ b/posts/2021/17EC6DQ.html
@@ -419,13 +419,13 @@ 模板语法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/192XQSC.html b/posts/2021/192XQSC.html
index 163b6b7e84..041ab4ddfa 100644
--- a/posts/2021/192XQSC.html
+++ b/posts/2021/192XQSC.html
@@ -618,13 +618,13 @@ 🍒增加快捷键
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K2Y9FK.html b/posts/2021/1K2Y9FK.html
index cdc771c006..c2fb4db0af 100644
--- a/posts/2021/1K2Y9FK.html
+++ b/posts/2021/1K2Y9FK.html
@@ -423,13 +423,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1K35WF3.html b/posts/2021/1K35WF3.html
index 16c62c8d48..ff11e0885a 100644
--- a/posts/2021/1K35WF3.html
+++ b/posts/2021/1K35WF3.html
@@ -409,13 +409,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1KH1955.html b/posts/2021/1KH1955.html
index 97b6cb3d89..20abebb93d 100644
--- a/posts/2021/1KH1955.html
+++ b/posts/2021/1KH1955.html
@@ -440,13 +440,13 @@ T 转 Element
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1MAH7MY.html b/posts/2021/1MAH7MY.html
index c6c713d174..4bbc382580 100644
--- a/posts/2021/1MAH7MY.html
+++ b/posts/2021/1MAH7MY.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1P39N8S.html b/posts/2021/1P39N8S.html
index abca7e462f..cfcc809e39 100644
--- a/posts/2021/1P39N8S.html
+++ b/posts/2021/1P39N8S.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1QN39SQ.html b/posts/2021/1QN39SQ.html
index 4f559d9411..a1a8a32ff7 100644
--- a/posts/2021/1QN39SQ.html
+++ b/posts/2021/1QN39SQ.html
@@ -455,13 +455,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1RYMZHY.html b/posts/2021/1RYMZHY.html
index e65625c66f..e9f871057b 100644
--- a/posts/2021/1RYMZHY.html
+++ b/posts/2021/1RYMZHY.html
@@ -430,13 +430,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1S7VHNA.html b/posts/2021/1S7VHNA.html
index 44ba4a26e0..6e3efa9299 100644
--- a/posts/2021/1S7VHNA.html
+++ b/posts/2021/1S7VHNA.html
@@ -449,13 +449,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1SG7HMG.html b/posts/2021/1SG7HMG.html
index 6d2cec3729..d8e2baf31c 100644
--- a/posts/2021/1SG7HMG.html
+++ b/posts/2021/1SG7HMG.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/1TBWW0K.html b/posts/2021/1TBWW0K.html
index d34b94188f..af841259a6 100644
--- a/posts/2021/1TBWW0K.html
+++ b/posts/2021/1TBWW0K.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2840RVF.html b/posts/2021/2840RVF.html
index 6124d14588..6eb7586dfc 100644
--- a/posts/2021/2840RVF.html
+++ b/posts/2021/2840RVF.html
@@ -451,13 +451,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/28R2YWM.html b/posts/2021/28R2YWM.html
index 99be5092da..1ee1252594 100644
--- a/posts/2021/28R2YWM.html
+++ b/posts/2021/28R2YWM.html
@@ -487,13 +487,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2BXPYRB.html b/posts/2021/2BXPYRB.html
index 82b62c691c..ebda24eeec 100644
--- a/posts/2021/2BXPYRB.html
+++ b/posts/2021/2BXPYRB.html
@@ -703,13 +703,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2D12FH.html b/posts/2021/2D12FH.html
index 30d2ea4325..9ff4feb58d 100644
--- a/posts/2021/2D12FH.html
+++ b/posts/2021/2D12FH.html
@@ -414,13 +414,13 @@ 编译
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2H6XD5B.html b/posts/2021/2H6XD5B.html
index 855cd4bb24..647c525ad3 100644
--- a/posts/2021/2H6XD5B.html
+++ b/posts/2021/2H6XD5B.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HDPP49.html b/posts/2021/2HDPP49.html
index f8ad986eb2..0812f0543c 100644
--- a/posts/2021/2HDPP49.html
+++ b/posts/2021/2HDPP49.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2HTB36N.html b/posts/2021/2HTB36N.html
index e74f4c1d75..78ccd963f6 100644
--- a/posts/2021/2HTB36N.html
+++ b/posts/2021/2HTB36N.html
@@ -429,13 +429,13 @@ 任意坐标系
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2JZQM2W.html b/posts/2021/2JZQM2W.html
index 92b2478c25..b7c7bad2d6 100644
--- a/posts/2021/2JZQM2W.html
+++ b/posts/2021/2JZQM2W.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2MV52X2.html b/posts/2021/2MV52X2.html
index 21b8ffed2a..e10c6c4963 100644
--- a/posts/2021/2MV52X2.html
+++ b/posts/2021/2MV52X2.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2NDY00Q.html b/posts/2021/2NDY00Q.html
index f1dc29f9ec..906ff81e93 100644
--- a/posts/2021/2NDY00Q.html
+++ b/posts/2021/2NDY00Q.html
@@ -445,13 +445,13 @@ 定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P07T4K.html b/posts/2021/2P07T4K.html
index 8bf2898d6a..8ae9918aa2 100644
--- a/posts/2021/2P07T4K.html
+++ b/posts/2021/2P07T4K.html
@@ -356,13 +356,13 @@
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2P3NVEN.html b/posts/2021/2P3NVEN.html
index 15e2dbaecd..684c36bc52 100644
--- a/posts/2021/2P3NVEN.html
+++ b/posts/2021/2P3NVEN.html
@@ -405,13 +405,13 @@ 停止报错
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VBGV0Z.html b/posts/2021/2VBGV0Z.html
index 0199ae0604..575ee701af 100644
--- a/posts/2021/2VBGV0Z.html
+++ b/posts/2021/2VBGV0Z.html
@@ -417,13 +417,13 @@ CurveVector 克隆
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/2VC1G0D.html b/posts/2021/2VC1G0D.html
index e988884ec7..7490877409 100644
--- a/posts/2021/2VC1G0D.html
+++ b/posts/2021/2VC1G0D.html
@@ -498,13 +498,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31B2ZF5.html b/posts/2021/31B2ZF5.html
index ad8df96ee1..a768291b69 100644
--- a/posts/2021/31B2ZF5.html
+++ b/posts/2021/31B2ZF5.html
@@ -425,13 +425,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31GSH68.html b/posts/2021/31GSH68.html
index ffca701a9b..952f441059 100644
--- a/posts/2021/31GSH68.html
+++ b/posts/2021/31GSH68.html
@@ -406,13 +406,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/31QX5RZ.html b/posts/2021/31QX5RZ.html
index 1a9b107af9..7a1e68611b 100644
--- a/posts/2021/31QX5RZ.html
+++ b/posts/2021/31QX5RZ.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/32SP0MA.html b/posts/2021/32SP0MA.html
index b825ea9eff..7aaabb2fae 100644
--- a/posts/2021/32SP0MA.html
+++ b/posts/2021/32SP0MA.html
@@ -446,13 +446,13 @@ 特殊查询
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/347YJNZ.html b/posts/2021/347YJNZ.html
index 033e3d40b2..1edd5a12cf 100644
--- a/posts/2021/347YJNZ.html
+++ b/posts/2021/347YJNZ.html
@@ -389,13 +389,13 @@ 选择什么版本
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/35VQS80.html b/posts/2021/35VQS80.html
index bd127b0f71..76cea2e3a2 100644
--- a/posts/2021/35VQS80.html
+++ b/posts/2021/35VQS80.html
@@ -412,13 +412,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/383PEWF.html b/posts/2021/383PEWF.html
index fdea475259..58c01833d1 100644
--- a/posts/2021/383PEWF.html
+++ b/posts/2021/383PEWF.html
@@ -423,13 +423,13 @@ 选项说明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3APEE3Y.html b/posts/2021/3APEE3Y.html
index c345f3a164..a72e4f820f 100644
--- a/posts/2021/3APEE3Y.html
+++ b/posts/2021/3APEE3Y.html
@@ -497,13 +497,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3BD2JEJ.html b/posts/2021/3BD2JEJ.html
index 65f37d6b30..929d9f4265 100644
--- a/posts/2021/3BD2JEJ.html
+++ b/posts/2021/3BD2JEJ.html
@@ -418,13 +418,13 @@ 映射选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3H6CDHV.html b/posts/2021/3H6CDHV.html
index 9efba221ae..d13a622c4b 100644
--- a/posts/2021/3H6CDHV.html
+++ b/posts/2021/3H6CDHV.html
@@ -411,13 +411,13 @@ 安装宝塔面板
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3HKW9DE.html b/posts/2021/3HKW9DE.html
index dc4d3cb9df..bf42f27482 100644
--- a/posts/2021/3HKW9DE.html
+++ b/posts/2021/3HKW9DE.html
@@ -435,13 +435,13 @@ 解决方法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3KHWK77.html b/posts/2021/3KHWK77.html
index 37879e2a29..33211eeada 100644
--- a/posts/2021/3KHWK77.html
+++ b/posts/2021/3KHWK77.html
@@ -437,13 +437,13 @@ 防火墙配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3M6QG1T.html b/posts/2021/3M6QG1T.html
index 815bb0a744..222967d8b0 100644
--- a/posts/2021/3M6QG1T.html
+++ b/posts/2021/3M6QG1T.html
@@ -420,13 +420,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3NEM1KV.html b/posts/2021/3NEM1KV.html
index 3fa1bea741..151944ceab 100644
--- a/posts/2021/3NEM1KV.html
+++ b/posts/2021/3NEM1KV.html
@@ -536,13 +536,13 @@ ToDo
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3RHTYZB.html b/posts/2021/3RHTYZB.html
index 97c69ce91b..f102243257 100644
--- a/posts/2021/3RHTYZB.html
+++ b/posts/2021/3RHTYZB.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3Z62NZ0.html b/posts/2021/3Z62NZ0.html
index fae48011de..f2bdf85604 100644
--- a/posts/2021/3Z62NZ0.html
+++ b/posts/2021/3Z62NZ0.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZC6ACS.html b/posts/2021/3ZC6ACS.html
index 4606c2b5b0..2b2ae272eb 100644
--- a/posts/2021/3ZC6ACS.html
+++ b/posts/2021/3ZC6ACS.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/3ZSEX8G.html b/posts/2021/3ZSEX8G.html
index 57cc56684e..d6a00622ac 100644
--- a/posts/2021/3ZSEX8G.html
+++ b/posts/2021/3ZSEX8G.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/8Z3TAG.html b/posts/2021/8Z3TAG.html
index 7d24e539d5..ed97f181fb 100644
--- a/posts/2021/8Z3TAG.html
+++ b/posts/2021/8Z3TAG.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BGHDM6.html b/posts/2021/BGHDM6.html
index 5e8a0e9b0d..09b96955a6 100644
--- a/posts/2021/BGHDM6.html
+++ b/posts/2021/BGHDM6.html
@@ -511,13 +511,13 @@ 硬件选择
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BKEMB5.html b/posts/2021/BKEMB5.html
index 5983d54c33..cb996c692b 100644
--- a/posts/2021/BKEMB5.html
+++ b/posts/2021/BKEMB5.html
@@ -356,8 +356,8 @@ 弃用 out 值
@@ -396,13 +396,13 @@ 弃用 out 值
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/BSGCK7.html b/posts/2021/BSGCK7.html
index e7b18c8c2b..efd03a6893 100644
--- a/posts/2021/BSGCK7.html
+++ b/posts/2021/BSGCK7.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/F3GB3M.html b/posts/2021/F3GB3M.html
index b90ca2c8b3..b0a911ea47 100644
--- a/posts/2021/F3GB3M.html
+++ b/posts/2021/F3GB3M.html
@@ -415,13 +415,13 @@ 代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/G2SGMF.html b/posts/2021/G2SGMF.html
index e36319b0a0..5b0b4fc4d8 100644
--- a/posts/2021/G2SGMF.html
+++ b/posts/2021/G2SGMF.html
@@ -408,13 +408,13 @@ 导出证书
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/MAACZD.html b/posts/2021/MAACZD.html
index 5c35923619..e37dde0161 100644
--- a/posts/2021/MAACZD.html
+++ b/posts/2021/MAACZD.html
@@ -424,13 +424,13 @@ Map-Reduce
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/Q0YYS8.html b/posts/2021/Q0YYS8.html
index dfb46ef319..768fd2e5af 100644
--- a/posts/2021/Q0YYS8.html
+++ b/posts/2021/Q0YYS8.html
@@ -451,13 +451,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/WYBXRB.html b/posts/2021/WYBXRB.html
index 168a0b4a4a..f9eb6db203 100644
--- a/posts/2021/WYBXRB.html
+++ b/posts/2021/WYBXRB.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2021/XG9YG0.html b/posts/2021/XG9YG0.html
index 6467c5212a..0255656af1 100644
--- a/posts/2021/XG9YG0.html
+++ b/posts/2021/XG9YG0.html
@@ -390,13 +390,13 @@ git commit -m 换行
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/071MK6.html b/posts/2022/071MK6.html
index 31150d29b5..bdaa9923b9 100644
--- a/posts/2022/071MK6.html
+++ b/posts/2022/071MK6.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/08TWEH.html b/posts/2022/08TWEH.html
index 33781b99a4..5c3bd909ac 100644
--- a/posts/2022/08TWEH.html
+++ b/posts/2022/08TWEH.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/10AW0YR.html b/posts/2022/10AW0YR.html
index b4ca3a42cf..a408efec26 100644
--- a/posts/2022/10AW0YR.html
+++ b/posts/2022/10AW0YR.html
@@ -421,13 +421,13 @@ 其它注意
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/14XRC75.html b/posts/2022/14XRC75.html
index f5e5cd738a..7f05248528 100644
--- a/posts/2022/14XRC75.html
+++ b/posts/2022/14XRC75.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1621QC.html b/posts/2022/1621QC.html
index ae4f8850f4..615a0f8c46 100644
--- a/posts/2022/1621QC.html
+++ b/posts/2022/1621QC.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/17HZQ95.html b/posts/2022/17HZQ95.html
index 99a954209e..87f7e5d39c 100644
--- a/posts/2022/17HZQ95.html
+++ b/posts/2022/17HZQ95.html
@@ -465,13 +465,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18J366C.html b/posts/2022/18J366C.html
index 90d903f1f9..01716c4517 100644
--- a/posts/2022/18J366C.html
+++ b/posts/2022/18J366C.html
@@ -415,13 +415,13 @@ 配置文件位置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/18JF19Q.html b/posts/2022/18JF19Q.html
index 6b59ebb45e..44911eef6f 100644
--- a/posts/2022/18JF19Q.html
+++ b/posts/2022/18JF19Q.html
@@ -398,13 +398,13 @@ JS 的诞生
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/192YQY2.html b/posts/2022/192YQY2.html
index b4d53d9cc6..b07ce13057 100644
--- a/posts/2022/192YQY2.html
+++ b/posts/2022/192YQY2.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/198SKHP.html b/posts/2022/198SKHP.html
index 1930949dee..40e2f6422f 100644
--- a/posts/2022/198SKHP.html
+++ b/posts/2022/198SKHP.html
@@ -405,13 +405,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/19JPMSG.html b/posts/2022/19JPMSG.html
index 8924f9de86..5260abea6d 100644
--- a/posts/2022/19JPMSG.html
+++ b/posts/2022/19JPMSG.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1A0Q13P.html b/posts/2022/1A0Q13P.html
index c3827c64f8..3cf846f4b1 100644
--- a/posts/2022/1A0Q13P.html
+++ b/posts/2022/1A0Q13P.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1BXSKSD.html b/posts/2022/1BXSKSD.html
index 50146bdc64..a6c8beff4d 100644
--- a/posts/2022/1BXSKSD.html
+++ b/posts/2022/1BXSKSD.html
@@ -384,13 +384,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C3RDWC.html b/posts/2022/1C3RDWC.html
index 3caf944c82..444ccff5e8 100644
--- a/posts/2022/1C3RDWC.html
+++ b/posts/2022/1C3RDWC.html
@@ -559,13 +559,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1C9ATGS.html b/posts/2022/1C9ATGS.html
index 2907659652..e49cde6fce 100644
--- a/posts/2022/1C9ATGS.html
+++ b/posts/2022/1C9ATGS.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1CPW2GG.html b/posts/2022/1CPW2GG.html
index bc10a15f8b..846066206d 100644
--- a/posts/2022/1CPW2GG.html
+++ b/posts/2022/1CPW2GG.html
@@ -1083,13 +1083,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1E4K349.html b/posts/2022/1E4K349.html
index 837d24b622..41ec20076a 100644
--- a/posts/2022/1E4K349.html
+++ b/posts/2022/1E4K349.html
@@ -450,13 +450,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ERZT1V.html b/posts/2022/1ERZT1V.html
index 67ed780c73..86431dc7aa 100644
--- a/posts/2022/1ERZT1V.html
+++ b/posts/2022/1ERZT1V.html
@@ -585,13 +585,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1FJ4HP4.html b/posts/2022/1FJ4HP4.html
index 900eded68e..0dd7411896 100644
--- a/posts/2022/1FJ4HP4.html
+++ b/posts/2022/1FJ4HP4.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1GXJ3PN.html b/posts/2022/1GXJ3PN.html
index 67ea9cc9b8..73668c321e 100644
--- a/posts/2022/1GXJ3PN.html
+++ b/posts/2022/1GXJ3PN.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1M5FEQF.html b/posts/2022/1M5FEQF.html
index 7ee958c866..d27ee9b7eb 100644
--- a/posts/2022/1M5FEQF.html
+++ b/posts/2022/1M5FEQF.html
@@ -397,13 +397,13 @@ 安装
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1NF37FV.html b/posts/2022/1NF37FV.html
index 3720afbbde..9b959dd193 100644
--- a/posts/2022/1NF37FV.html
+++ b/posts/2022/1NF37FV.html
@@ -473,13 +473,13 @@ 测试代码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1QF32WJ.html b/posts/2022/1QF32WJ.html
index cd51ec1a54..3e9d442974 100644
--- a/posts/2022/1QF32WJ.html
+++ b/posts/2022/1QF32WJ.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RDA3BV.html b/posts/2022/1RDA3BV.html
index 1722b8ab04..cb5882669c 100644
--- a/posts/2022/1RDA3BV.html
+++ b/posts/2022/1RDA3BV.html
@@ -414,13 +414,13 @@ DTransform3d
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1RWN42Y.html b/posts/2022/1RWN42Y.html
index e4b3fa8932..ae4100a791 100644
--- a/posts/2022/1RWN42Y.html
+++ b/posts/2022/1RWN42Y.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S7MQ2A.html b/posts/2022/1S7MQ2A.html
index d9d905fdda..e7271a2b82 100644
--- a/posts/2022/1S7MQ2A.html
+++ b/posts/2022/1S7MQ2A.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1S9QPH9.html b/posts/2022/1S9QPH9.html
index 4c161486f1..15bb3d2703 100644
--- a/posts/2022/1S9QPH9.html
+++ b/posts/2022/1S9QPH9.html
@@ -418,13 +418,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1T9FB4F.html b/posts/2022/1T9FB4F.html
index 43cc37fd78..7e07ea098a 100644
--- a/posts/2022/1T9FB4F.html
+++ b/posts/2022/1T9FB4F.html
@@ -394,13 +394,13 @@ 效率
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1VMAW6B.html b/posts/2022/1VMAW6B.html
index 6eef8977c9..eb608ecde6 100644
--- a/posts/2022/1VMAW6B.html
+++ b/posts/2022/1VMAW6B.html
@@ -499,13 +499,13 @@ 三不等跨梁内力系数
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1X1W7HR.html b/posts/2022/1X1W7HR.html
index 4fce216930..9a06314189 100644
--- a/posts/2022/1X1W7HR.html
+++ b/posts/2022/1X1W7HR.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1XTXTE4.html b/posts/2022/1XTXTE4.html
index 64a5309af6..384bb439cc 100644
--- a/posts/2022/1XTXTE4.html
+++ b/posts/2022/1XTXTE4.html
@@ -444,13 +444,13 @@ 连接问题
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/1ZBGNQC.html b/posts/2022/1ZBGNQC.html
index ceb47f61da..11892165a5 100644
--- a/posts/2022/1ZBGNQC.html
+++ b/posts/2022/1ZBGNQC.html
@@ -737,13 +737,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2151DJJ.html b/posts/2022/2151DJJ.html
index 6e81257fc8..790561171b 100644
--- a/posts/2022/2151DJJ.html
+++ b/posts/2022/2151DJJ.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/22T138.html b/posts/2022/22T138.html
index 09a83040d6..4511546e01 100644
--- a/posts/2022/22T138.html
+++ b/posts/2022/22T138.html
@@ -424,13 +424,13 @@ 访问bucket被拒绝
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/243ZBZ4.html b/posts/2022/243ZBZ4.html
index 34d57a3a8a..1972c9f255 100644
--- a/posts/2022/243ZBZ4.html
+++ b/posts/2022/243ZBZ4.html
@@ -500,13 +500,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/249XC4P.html b/posts/2022/249XC4P.html
index c10de3c46e..a4542dfcd7 100644
--- a/posts/2022/249XC4P.html
+++ b/posts/2022/249XC4P.html
@@ -851,13 +851,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/24T5YRV.html b/posts/2022/24T5YRV.html
index c19dc78076..09d9a83e30 100644
--- a/posts/2022/24T5YRV.html
+++ b/posts/2022/24T5YRV.html
@@ -389,13 +389,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/25J6BC2.html b/posts/2022/25J6BC2.html
index 74b290cddf..751e02b698 100644
--- a/posts/2022/25J6BC2.html
+++ b/posts/2022/25J6BC2.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/26E0BYF.html b/posts/2022/26E0BYF.html
index c6e35dce66..3a800d72d9 100644
--- a/posts/2022/26E0BYF.html
+++ b/posts/2022/26E0BYF.html
@@ -390,13 +390,13 @@ 引用列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2775XKA.html b/posts/2022/2775XKA.html
index c42d4e677e..1b108b3440 100644
--- a/posts/2022/2775XKA.html
+++ b/posts/2022/2775XKA.html
@@ -459,13 +459,13 @@ 测试
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/28BGV5K.html b/posts/2022/28BGV5K.html
index afc9af46a6..5bb315ef5e 100644
--- a/posts/2022/28BGV5K.html
+++ b/posts/2022/28BGV5K.html
@@ -462,13 +462,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/29WK0R3.html b/posts/2022/29WK0R3.html
index ea2018bf47..a166e63deb 100644
--- a/posts/2022/29WK0R3.html
+++ b/posts/2022/29WK0R3.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2AJRA04.html b/posts/2022/2AJRA04.html
index cb12f3c101..8a9d33040b 100644
--- a/posts/2022/2AJRA04.html
+++ b/posts/2022/2AJRA04.html
@@ -460,13 +460,13 @@ 关联
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2BJZWZD.html b/posts/2022/2BJZWZD.html
index ef2a2a16c5..0325cf6dbd 100644
--- a/posts/2022/2BJZWZD.html
+++ b/posts/2022/2BJZWZD.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2CGPR3T.html b/posts/2022/2CGPR3T.html
index 6c61e086e3..17b60a977c 100644
--- a/posts/2022/2CGPR3T.html
+++ b/posts/2022/2CGPR3T.html
@@ -460,13 +460,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2GHTM80.html b/posts/2022/2GHTM80.html
index 72d4fe1c62..1d1fedc3fd 100644
--- a/posts/2022/2GHTM80.html
+++ b/posts/2022/2GHTM80.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2H9CDXZ.html b/posts/2022/2H9CDXZ.html
index f857c17e10..bc97134d8d 100644
--- a/posts/2022/2H9CDXZ.html
+++ b/posts/2022/2H9CDXZ.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2J626YP.html b/posts/2022/2J626YP.html
index c06d3d2e83..01074f26f7 100644
--- a/posts/2022/2J626YP.html
+++ b/posts/2022/2J626YP.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2JXSX6J.html b/posts/2022/2JXSX6J.html
index 2424699f6e..4a978537c5 100644
--- a/posts/2022/2JXSX6J.html
+++ b/posts/2022/2JXSX6J.html
@@ -443,13 +443,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2K21HCS.html b/posts/2022/2K21HCS.html
index a72161c6f3..d7fdda394b 100644
--- a/posts/2022/2K21HCS.html
+++ b/posts/2022/2K21HCS.html
@@ -599,13 +599,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N28YC5.html b/posts/2022/2N28YC5.html
index c9058b1f59..664262c8a6 100644
--- a/posts/2022/2N28YC5.html
+++ b/posts/2022/2N28YC5.html
@@ -400,13 +400,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2N5VCDY.html b/posts/2022/2N5VCDY.html
index 81338cfd7a..397054173c 100644
--- a/posts/2022/2N5VCDY.html
+++ b/posts/2022/2N5VCDY.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2QWMRNH.html b/posts/2022/2QWMRNH.html
index ce0ca6c88f..834aeba775 100644
--- a/posts/2022/2QWMRNH.html
+++ b/posts/2022/2QWMRNH.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2R0P0YJ.html b/posts/2022/2R0P0YJ.html
index 23d7c69dce..e468dd8396 100644
--- a/posts/2022/2R0P0YJ.html
+++ b/posts/2022/2R0P0YJ.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2RW3NJ1.html b/posts/2022/2RW3NJ1.html
index 24649693b8..8b190b413e 100644
--- a/posts/2022/2RW3NJ1.html
+++ b/posts/2022/2RW3NJ1.html
@@ -387,13 +387,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2V5ECSD.html b/posts/2022/2V5ECSD.html
index 4500a2dd76..bff6df8b90 100644
--- a/posts/2022/2V5ECSD.html
+++ b/posts/2022/2V5ECSD.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2VDPVDM.html b/posts/2022/2VDPVDM.html
index b01d6056de..e36759e213 100644
--- a/posts/2022/2VDPVDM.html
+++ b/posts/2022/2VDPVDM.html
@@ -649,13 +649,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2XR0S9K.html b/posts/2022/2XR0S9K.html
index fb1bf83662..c05fb4090b 100644
--- a/posts/2022/2XR0S9K.html
+++ b/posts/2022/2XR0S9K.html
@@ -489,13 +489,13 @@ 其它经验
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/2ZJ91KM.html b/posts/2022/2ZJ91KM.html
index 9414d2779c..cc1b623827 100644
--- a/posts/2022/2ZJ91KM.html
+++ b/posts/2022/2ZJ91KM.html
@@ -421,13 +421,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/31N5JWW.html b/posts/2022/31N5JWW.html
index 3ae14ac88e..bc11dfe751 100644
--- a/posts/2022/31N5JWW.html
+++ b/posts/2022/31N5JWW.html
@@ -439,13 +439,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33B50C4.html b/posts/2022/33B50C4.html
index b44b9dc940..0419fec145 100644
--- a/posts/2022/33B50C4.html
+++ b/posts/2022/33B50C4.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/33P3D91.html b/posts/2022/33P3D91.html
index 33c433cf35..f07a594001 100644
--- a/posts/2022/33P3D91.html
+++ b/posts/2022/33P3D91.html
@@ -415,13 +415,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/343KYGK.html b/posts/2022/343KYGK.html
index fc9811ab70..63b7f5216b 100644
--- a/posts/2022/343KYGK.html
+++ b/posts/2022/343KYGK.html
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/345RS77.html b/posts/2022/345RS77.html
index 21448d3a99..0f10893a36 100644
--- a/posts/2022/345RS77.html
+++ b/posts/2022/345RS77.html
@@ -396,13 +396,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/34CSWY8.html b/posts/2022/34CSWY8.html
index 6c2ae20436..72af2a0468 100644
--- a/posts/2022/34CSWY8.html
+++ b/posts/2022/34CSWY8.html
@@ -424,13 +424,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/35RJHX8.html b/posts/2022/35RJHX8.html
index 26544f6e13..c22bff39b3 100644
--- a/posts/2022/35RJHX8.html
+++ b/posts/2022/35RJHX8.html
@@ -512,13 +512,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/36TCWHD.html b/posts/2022/36TCWHD.html
index 398a89ede2..f551f3be4a 100644
--- a/posts/2022/36TCWHD.html
+++ b/posts/2022/36TCWHD.html
@@ -462,13 +462,13 @@ 其它技巧
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/37DM65S.html b/posts/2022/37DM65S.html
index 9dd040ea93..3bbe26bc0d 100644
--- a/posts/2022/37DM65S.html
+++ b/posts/2022/37DM65S.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/380JK61.html b/posts/2022/380JK61.html
index 8a25689f32..8b33b3c63f 100644
--- a/posts/2022/380JK61.html
+++ b/posts/2022/380JK61.html
@@ -684,13 +684,13 @@ 蹦蹦
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38A8BYH.html b/posts/2022/38A8BYH.html
index 18b4c12669..e9e5ccf312 100644
--- a/posts/2022/38A8BYH.html
+++ b/posts/2022/38A8BYH.html
@@ -392,13 +392,13 @@ DVector3d 变换
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38K28WD.html b/posts/2022/38K28WD.html
index bc0adb2861..de454cdbf9 100644
--- a/posts/2022/38K28WD.html
+++ b/posts/2022/38K28WD.html
@@ -413,13 +413,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/38ND00E.html b/posts/2022/38ND00E.html
index dc02f8fcc8..b702a2d843 100644
--- a/posts/2022/38ND00E.html
+++ b/posts/2022/38ND00E.html
@@ -399,13 +399,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/39S6V31.html b/posts/2022/39S6V31.html
index ca61257349..2011ba2bb9 100644
--- a/posts/2022/39S6V31.html
+++ b/posts/2022/39S6V31.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3A2KFYY.html b/posts/2022/3A2KFYY.html
index 7cfb2541cd..3ce8837ce4 100644
--- a/posts/2022/3A2KFYY.html
+++ b/posts/2022/3A2KFYY.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3AYW43.html b/posts/2022/3AYW43.html
index d8fdaa3883..1c35ad6bd0 100644
--- a/posts/2022/3AYW43.html
+++ b/posts/2022/3AYW43.html
@@ -522,13 +522,13 @@ 休息日作息时间安排
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3B8HS2.html b/posts/2022/3B8HS2.html
index 9884f2baea..6e10d9a145 100644
--- a/posts/2022/3B8HS2.html
+++ b/posts/2022/3B8HS2.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3D1SMMC.html b/posts/2022/3D1SMMC.html
index d1445fefc0..97af70ffed 100644
--- a/posts/2022/3D1SMMC.html
+++ b/posts/2022/3D1SMMC.html
@@ -502,13 +502,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DAB2TW.html b/posts/2022/3DAB2TW.html
index 6e14e2a6dc..e0946a177b 100644
--- a/posts/2022/3DAB2TW.html
+++ b/posts/2022/3DAB2TW.html
@@ -586,13 +586,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3DC5WC5.html b/posts/2022/3DC5WC5.html
index f13befb4e1..b6706e84a7 100644
--- a/posts/2022/3DC5WC5.html
+++ b/posts/2022/3DC5WC5.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3EFH36D.html b/posts/2022/3EFH36D.html
index b76527a286..b952466fd0 100644
--- a/posts/2022/3EFH36D.html
+++ b/posts/2022/3EFH36D.html
@@ -532,13 +532,13 @@ 安装SwBentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3F4M78Z.html b/posts/2022/3F4M78Z.html
index e34608f321..3bb7148dfe 100644
--- a/posts/2022/3F4M78Z.html
+++ b/posts/2022/3F4M78Z.html
@@ -392,13 +392,13 @@ 2022-02-23
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3G3ZXDE.html b/posts/2022/3G3ZXDE.html
index 62c579c9f0..ac49ea5282 100644
--- a/posts/2022/3G3ZXDE.html
+++ b/posts/2022/3G3ZXDE.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HJTYAD.html b/posts/2022/3HJTYAD.html
index 8e990fb4ce..6e24dea656 100644
--- a/posts/2022/3HJTYAD.html
+++ b/posts/2022/3HJTYAD.html
@@ -521,13 +521,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3HRNXN7.html b/posts/2022/3HRNXN7.html
index 34a4a101ec..280326040f 100644
--- a/posts/2022/3HRNXN7.html
+++ b/posts/2022/3HRNXN7.html
@@ -1026,13 +1026,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JC8V28.html b/posts/2022/3JC8V28.html
index b74510aa00..1191353a75 100644
--- a/posts/2022/3JC8V28.html
+++ b/posts/2022/3JC8V28.html
@@ -534,13 +534,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3JD7WCR.html b/posts/2022/3JD7WCR.html
index 97ca5fde72..d06b305698 100644
--- a/posts/2022/3JD7WCR.html
+++ b/posts/2022/3JD7WCR.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3KBT6ZZ.html b/posts/2022/3KBT6ZZ.html
index d6f616eea7..b2b9ff7e67 100644
--- a/posts/2022/3KBT6ZZ.html
+++ b/posts/2022/3KBT6ZZ.html
@@ -393,13 +393,13 @@ 操作
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3M46N6F.html b/posts/2022/3M46N6F.html
index e87f1320e2..205e8d16e1 100644
--- a/posts/2022/3M46N6F.html
+++ b/posts/2022/3M46N6F.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3MW6BH0.html b/posts/2022/3MW6BH0.html
index cd58b92b19..c65ebca1a3 100644
--- a/posts/2022/3MW6BH0.html
+++ b/posts/2022/3MW6BH0.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3NG4YVW.html b/posts/2022/3NG4YVW.html
index 250403546e..08034aa638 100644
--- a/posts/2022/3NG4YVW.html
+++ b/posts/2022/3NG4YVW.html
@@ -401,13 +401,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3PMMZVC.html b/posts/2022/3PMMZVC.html
index 670ab7ee67..cdcf10dca3 100644
--- a/posts/2022/3PMMZVC.html
+++ b/posts/2022/3PMMZVC.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3Q3PPSM.html b/posts/2022/3Q3PPSM.html
index 59f9dfc2d2..3959cf1f84 100644
--- a/posts/2022/3Q3PPSM.html
+++ b/posts/2022/3Q3PPSM.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2PQT2.html b/posts/2022/3S2PQT2.html
index 3023eb53a0..0686a07685 100644
--- a/posts/2022/3S2PQT2.html
+++ b/posts/2022/3S2PQT2.html
@@ -406,13 +406,13 @@ 正文
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3S2R3P0.html b/posts/2022/3S2R3P0.html
index 3c4446d8ba..2f51962646 100644
--- a/posts/2022/3S2R3P0.html
+++ b/posts/2022/3S2R3P0.html
@@ -433,13 +433,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3SP0JGM.html b/posts/2022/3SP0JGM.html
index 2acf66dc11..85693f33a6 100644
--- a/posts/2022/3SP0JGM.html
+++ b/posts/2022/3SP0JGM.html
@@ -442,13 +442,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3TYQ1H6.html b/posts/2022/3TYQ1H6.html
index 138d707d7b..bb7257d41a 100644
--- a/posts/2022/3TYQ1H6.html
+++ b/posts/2022/3TYQ1H6.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/3YFJNZD.html b/posts/2022/3YFJNZD.html
index 1d5d06f87d..346ee44c60 100644
--- a/posts/2022/3YFJNZD.html
+++ b/posts/2022/3YFJNZD.html
@@ -441,13 +441,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/54B652.html b/posts/2022/54B652.html
index 1661ba38e6..b18bfb783a 100644
--- a/posts/2022/54B652.html
+++ b/posts/2022/54B652.html
@@ -379,13 +379,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/5X1QK2.html b/posts/2022/5X1QK2.html
index 730860ce9d..97a8f0d1e0 100644
--- a/posts/2022/5X1QK2.html
+++ b/posts/2022/5X1QK2.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7EE4JK.html b/posts/2022/7EE4JK.html
index 1a9a3c310a..62908d0390 100644
--- a/posts/2022/7EE4JK.html
+++ b/posts/2022/7EE4JK.html
@@ -452,13 +452,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/7MJX55.html b/posts/2022/7MJX55.html
index a4a5ebd87e..6e029a6bcb 100644
--- a/posts/2022/7MJX55.html
+++ b/posts/2022/7MJX55.html
@@ -461,13 +461,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9RVNQC.html b/posts/2022/9RVNQC.html
index 1a105ace9c..f887210830 100644
--- a/posts/2022/9RVNQC.html
+++ b/posts/2022/9RVNQC.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9TBVZR.html b/posts/2022/9TBVZR.html
index da24eb536c..ce27e58a9e 100644
--- a/posts/2022/9TBVZR.html
+++ b/posts/2022/9TBVZR.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/9YRV0H.html b/posts/2022/9YRV0H.html
index d1e09964b3..0b7d1e109e 100644
--- a/posts/2022/9YRV0H.html
+++ b/posts/2022/9YRV0H.html
@@ -472,13 +472,13 @@ 重绘接口实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/AKDK4Z.html b/posts/2022/AKDK4Z.html
index e384dea4f5..7746c8cc14 100644
--- a/posts/2022/AKDK4Z.html
+++ b/posts/2022/AKDK4Z.html
@@ -417,13 +417,13 @@ 缓存
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/BA7F9Q.html b/posts/2022/BA7F9Q.html
index 977d799cdc..ae685f5786 100644
--- a/posts/2022/BA7F9Q.html
+++ b/posts/2022/BA7F9Q.html
@@ -408,13 +408,13 @@ JS 中实现
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C1JWDT.html b/posts/2022/C1JWDT.html
index 8517f79bc9..3f2b5814e6 100644
--- a/posts/2022/C1JWDT.html
+++ b/posts/2022/C1JWDT.html
@@ -551,13 +551,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/C57H56.html b/posts/2022/C57H56.html
index 982d87a0f5..3c5f6c733b 100644
--- a/posts/2022/C57H56.html
+++ b/posts/2022/C57H56.html
@@ -448,13 +448,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/DPK9DJ.html b/posts/2022/DPK9DJ.html
index 6a7576a8ba..5c800f721b 100644
--- a/posts/2022/DPK9DJ.html
+++ b/posts/2022/DPK9DJ.html
@@ -417,13 +417,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/E348XP.html b/posts/2022/E348XP.html
index c9af17d7a6..aaf3f628de 100644
--- a/posts/2022/E348XP.html
+++ b/posts/2022/E348XP.html
@@ -394,13 +394,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/EBMGE2.html b/posts/2022/EBMGE2.html
index 2d873f908c..1cf5aac081 100644
--- a/posts/2022/EBMGE2.html
+++ b/posts/2022/EBMGE2.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/FD5821.html b/posts/2022/FD5821.html
index 0a94905ea8..5f87bbd297 100644
--- a/posts/2022/FD5821.html
+++ b/posts/2022/FD5821.html
@@ -392,13 +392,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/GZ1MBS.html b/posts/2022/GZ1MBS.html
index a9e286c1b0..3ea89bb8ae 100644
--- a/posts/2022/GZ1MBS.html
+++ b/posts/2022/GZ1MBS.html
@@ -394,13 +394,13 @@ 发布包
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/HSPJ12.html b/posts/2022/HSPJ12.html
index a673819758..75368d9844 100644
--- a/posts/2022/HSPJ12.html
+++ b/posts/2022/HSPJ12.html
@@ -398,13 +398,13 @@ Regexp
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/JME2G9.html b/posts/2022/JME2G9.html
index 37cdeb5f0b..05172baa11 100644
--- a/posts/2022/JME2G9.html
+++ b/posts/2022/JME2G9.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/K0VDR.html b/posts/2022/K0VDR.html
index ec64c46a30..02fecfd0bd 100644
--- a/posts/2022/K0VDR.html
+++ b/posts/2022/K0VDR.html
@@ -705,13 +705,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/KBYMHE.html b/posts/2022/KBYMHE.html
index e3e0eb9afb..ba50202a78 100644
--- a/posts/2022/KBYMHE.html
+++ b/posts/2022/KBYMHE.html
@@ -437,13 +437,13 @@ 注意事项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/N9NB2K.html b/posts/2022/N9NB2K.html
index 1df222f561..9e3285d80c 100644
--- a/posts/2022/N9NB2K.html
+++ b/posts/2022/N9NB2K.html
@@ -420,13 +420,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/Q9EGFQ.html b/posts/2022/Q9EGFQ.html
index 0e77bbfdc7..74a2f9c089 100644
--- a/posts/2022/Q9EGFQ.html
+++ b/posts/2022/Q9EGFQ.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/QRGC5D.html b/posts/2022/QRGC5D.html
index c48caacac8..abb0122391 100644
--- a/posts/2022/QRGC5D.html
+++ b/posts/2022/QRGC5D.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/R23RB6.html b/posts/2022/R23RB6.html
index a4a68ec609..455f4fca72 100644
--- a/posts/2022/R23RB6.html
+++ b/posts/2022/R23RB6.html
@@ -569,13 +569,13 @@ 常见问题汇总
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SDER9X.html b/posts/2022/SDER9X.html
index 36d4dda939..4559eff2b6 100644
--- a/posts/2022/SDER9X.html
+++ b/posts/2022/SDER9X.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/SWJS0K.html b/posts/2022/SWJS0K.html
index 480e5588b4..d15513d14f 100644
--- a/posts/2022/SWJS0K.html
+++ b/posts/2022/SWJS0K.html
@@ -451,13 +451,13 @@ 安装 Adguard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/T3NMZE.html b/posts/2022/T3NMZE.html
index f3c1256329..0b44b0807f 100644
--- a/posts/2022/T3NMZE.html
+++ b/posts/2022/T3NMZE.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/TZZNFQ.html b/posts/2022/TZZNFQ.html
index 23350d95be..a179f9316f 100644
--- a/posts/2022/TZZNFQ.html
+++ b/posts/2022/TZZNFQ.html
@@ -791,13 +791,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/W1573T.html b/posts/2022/W1573T.html
index 030b85088c..96f95215e8 100644
--- a/posts/2022/W1573T.html
+++ b/posts/2022/W1573T.html
@@ -410,13 +410,13 @@ 使用
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/WP9100.html b/posts/2022/WP9100.html
index 3e810b6669..13fdea1694 100644
--- a/posts/2022/WP9100.html
+++ b/posts/2022/WP9100.html
@@ -404,13 +404,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/X71YPD.html b/posts/2022/X71YPD.html
index 895f477f0c..8364459365 100644
--- a/posts/2022/X71YPD.html
+++ b/posts/2022/X71YPD.html
@@ -420,13 +420,13 @@ legacy启动设置常见的选项
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2022/YNTT64.html b/posts/2022/YNTT64.html
index 7921e3e05f..d913e7db65 100644
--- a/posts/2022/YNTT64.html
+++ b/posts/2022/YNTT64.html
@@ -429,13 +429,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/11S1RTW.html b/posts/2023/11S1RTW.html
index 390555052c..cd62c44264 100644
--- a/posts/2023/11S1RTW.html
+++ b/posts/2023/11S1RTW.html
@@ -473,13 +473,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/13DV6YK.html b/posts/2023/13DV6YK.html
index 55457f6c22..b8e52a3ab3 100644
--- a/posts/2023/13DV6YK.html
+++ b/posts/2023/13DV6YK.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/17Q11CW.html b/posts/2023/17Q11CW.html
index 83d7fb6fd1..16e3973a83 100644
--- a/posts/2023/17Q11CW.html
+++ b/posts/2023/17Q11CW.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/18D31C7.html b/posts/2023/18D31C7.html
index b84b3cbe2b..90059fd247 100644
--- a/posts/2023/18D31C7.html
+++ b/posts/2023/18D31C7.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1D7C89K.html b/posts/2023/1D7C89K.html
index 6675190188..57925a4fa3 100644
--- a/posts/2023/1D7C89K.html
+++ b/posts/2023/1D7C89K.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EARQ0T.html b/posts/2023/1EARQ0T.html
index 950c0c5d66..395cb9ecef 100644
--- a/posts/2023/1EARQ0T.html
+++ b/posts/2023/1EARQ0T.html
@@ -457,13 +457,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1EDD6ES.html b/posts/2023/1EDD6ES.html
index fe0166fd8a..f3dfde2772 100644
--- a/posts/2023/1EDD6ES.html
+++ b/posts/2023/1EDD6ES.html
@@ -408,13 +408,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1G6444M.html b/posts/2023/1G6444M.html
index 022219202c..d2c054cc05 100644
--- a/posts/2023/1G6444M.html
+++ b/posts/2023/1G6444M.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1H5NPNF.html b/posts/2023/1H5NPNF.html
index 08b5f31c35..393589107e 100644
--- a/posts/2023/1H5NPNF.html
+++ b/posts/2023/1H5NPNF.html
@@ -389,13 +389,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1JSFERW.html b/posts/2023/1JSFERW.html
index bbfe436e45..b582496ddb 100644
--- a/posts/2023/1JSFERW.html
+++ b/posts/2023/1JSFERW.html
@@ -414,13 +414,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1KT0Y3S.html b/posts/2023/1KT0Y3S.html
index 0496a6dd43..d3cfb9c84e 100644
--- a/posts/2023/1KT0Y3S.html
+++ b/posts/2023/1KT0Y3S.html
@@ -394,13 +394,13 @@ Excel
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N11HYC.html b/posts/2023/1N11HYC.html
index 557ea43430..fda4163258 100644
--- a/posts/2023/1N11HYC.html
+++ b/posts/2023/1N11HYC.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1N5WRFM.html b/posts/2023/1N5WRFM.html
index 2efa040976..b64e99c3cb 100644
--- a/posts/2023/1N5WRFM.html
+++ b/posts/2023/1N5WRFM.html
@@ -420,13 +420,13 @@ 完整配置
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1Q13G3F.html b/posts/2023/1Q13G3F.html
index 2c201badc8..c5749c89fd 100644
--- a/posts/2023/1Q13G3F.html
+++ b/posts/2023/1Q13G3F.html
@@ -486,13 +486,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1T84381.html b/posts/2023/1T84381.html
index 08c5c094c8..78fd1091f2 100644
--- a/posts/2023/1T84381.html
+++ b/posts/2023/1T84381.html
@@ -416,13 +416,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1YG7ZB2.html b/posts/2023/1YG7ZB2.html
index f2e20f5616..64fb3f79fa 100644
--- a/posts/2023/1YG7ZB2.html
+++ b/posts/2023/1YG7ZB2.html
@@ -545,13 +545,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZNRJSW.html b/posts/2023/1ZNRJSW.html
index ec11da9c12..1b9d64c6b4 100644
--- a/posts/2023/1ZNRJSW.html
+++ b/posts/2023/1ZNRJSW.html
@@ -438,13 +438,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/1ZZM4MX.html b/posts/2023/1ZZM4MX.html
index e9a28613ef..9b7984f0c0 100644
--- a/posts/2023/1ZZM4MX.html
+++ b/posts/2023/1ZZM4MX.html
@@ -590,13 +590,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/210TYTX.html b/posts/2023/210TYTX.html
index 61ef7b6fea..187a08219d 100644
--- a/posts/2023/210TYTX.html
+++ b/posts/2023/210TYTX.html
@@ -410,13 +410,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/21AX3JT.html b/posts/2023/21AX3JT.html
index 5721616160..90f50a94ad 100644
--- a/posts/2023/21AX3JT.html
+++ b/posts/2023/21AX3JT.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/220EMHS.html b/posts/2023/220EMHS.html
index fbbe47405c..ffc6512389 100644
--- a/posts/2023/220EMHS.html
+++ b/posts/2023/220EMHS.html
@@ -444,13 +444,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/22EQ1WQ.html b/posts/2023/22EQ1WQ.html
index 8503e8e8cd..66b0a1e84e 100644
--- a/posts/2023/22EQ1WQ.html
+++ b/posts/2023/22EQ1WQ.html
@@ -422,13 +422,13 @@ 解决步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/23HY8MD.html b/posts/2023/23HY8MD.html
index b2e45e47e8..b2e1b2c220 100644
--- a/posts/2023/23HY8MD.html
+++ b/posts/2023/23HY8MD.html
@@ -398,13 +398,13 @@ 批量注册
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/25NK7XP.html b/posts/2023/25NK7XP.html
index dce3c63bc6..efb210501d 100644
--- a/posts/2023/25NK7XP.html
+++ b/posts/2023/25NK7XP.html
@@ -385,13 +385,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2608835.html b/posts/2023/2608835.html
index e70c6d9e7c..973895ebfc 100644
--- a/posts/2023/2608835.html
+++ b/posts/2023/2608835.html
@@ -435,13 +435,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/27DHP6N.html b/posts/2023/27DHP6N.html
index 9ad14f2d6d..ab9bc1b1c5 100644
--- a/posts/2023/27DHP6N.html
+++ b/posts/2023/27DHP6N.html
@@ -412,13 +412,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2812PDV.html b/posts/2023/2812PDV.html
index e1681dae24..b075515b37 100644
--- a/posts/2023/2812PDV.html
+++ b/posts/2023/2812PDV.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/283FNHQ.html b/posts/2023/283FNHQ.html
index c21e0b6aaf..883f0d4640 100644
--- a/posts/2023/283FNHQ.html
+++ b/posts/2023/283FNHQ.html
@@ -386,13 +386,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/28RRCMN.html b/posts/2023/28RRCMN.html
index d24ce5e058..2eab506d9b 100644
--- a/posts/2023/28RRCMN.html
+++ b/posts/2023/28RRCMN.html
@@ -395,13 +395,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BNMYWB.html b/posts/2023/2BNMYWB.html
index 25f3397052..83fce8cd14 100644
--- a/posts/2023/2BNMYWB.html
+++ b/posts/2023/2BNMYWB.html
@@ -539,13 +539,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2BPZ3DJ.html b/posts/2023/2BPZ3DJ.html
index 0834686fb0..69a706eee2 100644
--- a/posts/2023/2BPZ3DJ.html
+++ b/posts/2023/2BPZ3DJ.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2CR6PKS.html b/posts/2023/2CR6PKS.html
index 524f731678..d96f84799b 100644
--- a/posts/2023/2CR6PKS.html
+++ b/posts/2023/2CR6PKS.html
@@ -711,13 +711,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2HA8DCX.html b/posts/2023/2HA8DCX.html
index 6772f5af70..75521461cf 100644
--- a/posts/2023/2HA8DCX.html
+++ b/posts/2023/2HA8DCX.html
@@ -445,13 +445,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2JYPDKM.html b/posts/2023/2JYPDKM.html
index 065adaddea..73f2350a37 100644
--- a/posts/2023/2JYPDKM.html
+++ b/posts/2023/2JYPDKM.html
@@ -442,13 +442,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2KBPKH9.html b/posts/2023/2KBPKH9.html
index fa0e25400c..d129081669 100644
--- a/posts/2023/2KBPKH9.html
+++ b/posts/2023/2KBPKH9.html
@@ -422,13 +422,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2N7QY7C.html b/posts/2023/2N7QY7C.html
index 0d6fad07ec..1bc8bb2016 100644
--- a/posts/2023/2N7QY7C.html
+++ b/posts/2023/2N7QY7C.html
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2QBX38K.html b/posts/2023/2QBX38K.html
index 9c69fb240d..b6179420a8 100644
--- a/posts/2023/2QBX38K.html
+++ b/posts/2023/2QBX38K.html
@@ -437,13 +437,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SE43YW.html b/posts/2023/2SE43YW.html
index adca63bafa..3b34160546 100644
--- a/posts/2023/2SE43YW.html
+++ b/posts/2023/2SE43YW.html
@@ -418,13 +418,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2SJBCB8.html b/posts/2023/2SJBCB8.html
index 96806be2f0..6ef14eb2cd 100644
--- a/posts/2023/2SJBCB8.html
+++ b/posts/2023/2SJBCB8.html
@@ -426,13 +426,13 @@ vscode 中设置 powershell
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2STY3BG.html b/posts/2023/2STY3BG.html
index 9f17710ebe..893ee54a11 100644
--- a/posts/2023/2STY3BG.html
+++ b/posts/2023/2STY3BG.html
@@ -403,13 +403,13 @@ 建议
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2W88WG9.html b/posts/2023/2W88WG9.html
index e42cc55f22..40e7f648e2 100644
--- a/posts/2023/2W88WG9.html
+++ b/posts/2023/2W88WG9.html
@@ -1,6 +1,6 @@
-
-
-
+
+
+
@@ -18,13 +18,13 @@
-
-
+
+
-
+
@@ -32,37 +32,37 @@
-
-
-
-
-
-
-
-
-
-
-iEPC 设计协同使用教程 | 星辰大海
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+iEPC 设计协同使用教程 | 星辰大海
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -88,8 +88,8 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
@@ -263,7 +262,7 @@
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/posts/2023/2WHBPR.html b/posts/2023/2WHBPR.html
index c09ac31890..42849cb69b 100644
--- a/posts/2023/2WHBPR.html
+++ b/posts/2023/2WHBPR.html
@@ -408,13 +408,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Y0295C.html b/posts/2023/2Y0295C.html
index c4b8f7c626..bf8a5caaf0 100644
--- a/posts/2023/2Y0295C.html
+++ b/posts/2023/2Y0295C.html
@@ -434,13 +434,13 @@ 删除子模块
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2Z6QFVS.html b/posts/2023/2Z6QFVS.html
index 2678cc814c..b9d1add17d 100644
--- a/posts/2023/2Z6QFVS.html
+++ b/posts/2023/2Z6QFVS.html
@@ -411,13 +411,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/2ZVSC2C.html b/posts/2023/2ZVSC2C.html
index c19efc86dc..436161384d 100644
--- a/posts/2023/2ZVSC2C.html
+++ b/posts/2023/2ZVSC2C.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/304FHXE.html b/posts/2023/304FHXE.html
index be0392c9ef..bc454d607b 100644
--- a/posts/2023/304FHXE.html
+++ b/posts/2023/304FHXE.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3CG1P9K.html b/posts/2023/3CG1P9K.html
index 0124ccb930..8da7969a5b 100644
--- a/posts/2023/3CG1P9K.html
+++ b/posts/2023/3CG1P9K.html
@@ -1318,13 +1318,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3E7GWG0.html b/posts/2023/3E7GWG0.html
index f4877898f9..20affa9b44 100644
--- a/posts/2023/3E7GWG0.html
+++ b/posts/2023/3E7GWG0.html
@@ -515,13 +515,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3FEED8Y.html b/posts/2023/3FEED8Y.html
index 96cba15b92..39124cfe29 100644
--- a/posts/2023/3FEED8Y.html
+++ b/posts/2023/3FEED8Y.html
@@ -411,13 +411,13 @@ 演示
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G2MHZ7.html b/posts/2023/3G2MHZ7.html
index 66a723651c..b8de7ee4e7 100644
--- a/posts/2023/3G2MHZ7.html
+++ b/posts/2023/3G2MHZ7.html
@@ -477,13 +477,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G50H3P.html b/posts/2023/3G50H3P.html
index f92f1ad897..76aa3bc7d5 100644
--- a/posts/2023/3G50H3P.html
+++ b/posts/2023/3G50H3P.html
@@ -461,13 +461,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3G78E45.html b/posts/2023/3G78E45.html
index 5142c94256..ca59859f13 100644
--- a/posts/2023/3G78E45.html
+++ b/posts/2023/3G78E45.html
@@ -403,13 +403,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3H07Q23.html b/posts/2023/3H07Q23.html
index 30d03ba7f9..ceffa1f76a 100644
--- a/posts/2023/3H07Q23.html
+++ b/posts/2023/3H07Q23.html
@@ -484,13 +484,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J27R22.html b/posts/2023/3J27R22.html
index f75595782c..9acb8c1202 100644
--- a/posts/2023/3J27R22.html
+++ b/posts/2023/3J27R22.html
@@ -430,13 +430,13 @@ 配置步骤
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3J3YEMD.html b/posts/2023/3J3YEMD.html
index c2af75df4c..594e5ca88a 100644
--- a/posts/2023/3J3YEMD.html
+++ b/posts/2023/3J3YEMD.html
@@ -397,13 +397,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3JD9V8X.html b/posts/2023/3JD9V8X.html
index 3ed841efec..ae92c3c105 100644
--- a/posts/2023/3JD9V8X.html
+++ b/posts/2023/3JD9V8X.html
@@ -407,13 +407,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3KQXHMP.html b/posts/2023/3KQXHMP.html
index e94a7509c7..8857efeef3 100644
--- a/posts/2023/3KQXHMP.html
+++ b/posts/2023/3KQXHMP.html
@@ -512,13 +512,13 @@ 第十三章 表达感激
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3MXXBNW.html b/posts/2023/3MXXBNW.html
index a580a9fe48..4d3b6399a5 100644
--- a/posts/2023/3MXXBNW.html
+++ b/posts/2023/3MXXBNW.html
@@ -403,13 +403,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3R4JKDX.html b/posts/2023/3R4JKDX.html
index e2383ecba9..90e649158a 100644
--- a/posts/2023/3R4JKDX.html
+++ b/posts/2023/3R4JKDX.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3VB08HW.html b/posts/2023/3VB08HW.html
index 158384a35b..804f5fe66c 100644
--- a/posts/2023/3VB08HW.html
+++ b/posts/2023/3VB08HW.html
@@ -514,13 +514,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/3XYDGYD.html b/posts/2023/3XYDGYD.html
index 0c2f765c44..32d468c2ac 100644
--- a/posts/2023/3XYDGYD.html
+++ b/posts/2023/3XYDGYD.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/4PA3A5.html b/posts/2023/4PA3A5.html
index 082c972f6c..4946925289 100644
--- a/posts/2023/4PA3A5.html
+++ b/posts/2023/4PA3A5.html
@@ -454,13 +454,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/77AD03.html b/posts/2023/77AD03.html
index 9f5ab45ee0..03a38a160d 100644
--- a/posts/2023/77AD03.html
+++ b/posts/2023/77AD03.html
@@ -388,13 +388,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/9Q7N69.html b/posts/2023/9Q7N69.html
index 68a84b2c20..865338f081 100644
--- a/posts/2023/9Q7N69.html
+++ b/posts/2023/9Q7N69.html
@@ -506,13 +506,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/D4VJ6Q.html b/posts/2023/D4VJ6Q.html
index de37a1c7a8..0a9ecd71ca 100644
--- a/posts/2023/D4VJ6Q.html
+++ b/posts/2023/D4VJ6Q.html
@@ -471,13 +471,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/GDQD0X.html b/posts/2023/GDQD0X.html
index 55207f7a9b..00e2e1bddf 100644
--- a/posts/2023/GDQD0X.html
+++ b/posts/2023/GDQD0X.html
@@ -416,13 +416,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/HR60E3.html b/posts/2023/HR60E3.html
index 22774c6dbe..a7960011f1 100644
--- a/posts/2023/HR60E3.html
+++ b/posts/2023/HR60E3.html
@@ -398,13 +398,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/JKVCZP.html b/posts/2023/JKVCZP.html
index 6d9018fc9c..162d22cf06 100644
--- a/posts/2023/JKVCZP.html
+++ b/posts/2023/JKVCZP.html
@@ -449,13 +449,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/NY7H5J.html b/posts/2023/NY7H5J.html
index 92ddc6340f..95d830eeb6 100644
--- a/posts/2023/NY7H5J.html
+++ b/posts/2023/NY7H5J.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2023/QKCR7T.html b/posts/2023/QKCR7T.html
index 165571f632..ba53305eb7 100644
--- a/posts/2023/QKCR7T.html
+++ b/posts/2023/QKCR7T.html
@@ -468,13 +468,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/search.xml b/search.xml
index af345c1288..f6c8fb0819 100644
--- a/search.xml
+++ b/search.xml
@@ -1827,36 +1827,6 @@ https://www.englishclub.com/grammar/verb-tenses.htm
the video form:
https://www.youtube.com/watch?v=d0wV9EC3t14
-]]>
-
- English
-
-
- English
-
-
-
- American accent practice
- /posts/2020/15QDG6.html
- There are some experience in my studying.
-
-
-辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒouk məʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone who / sʌmwan u /
-can 一般 /kən/
-
]]>
English
@@ -2033,6 +2003,36 @@ sometimes, pop music。
the video form:
https://www.youtube.com/watch?v=X3aOsOUM06c&list=PL7sOfomcE2Tdq0N-_nb7tvdm4S5gBEr0N
+]]>
+
+ English
+
+
+ English
+
+
+
+ American accent practice
+ /posts/2020/15QDG6.html
+ There are some experience in my studying.
+
+
+辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒouk məʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone who / sʌmwan u /
+can 一般 /kən/
+
]]>
English
@@ -2347,31 +2347,6 @@ server(网站,数据库,当家庭电脑使用,如果今后内存增加,
其它时间占用后,用自由时间来抵消
自由时间可积累,用于挪用到其它时间处理紧急的事情
-]]>
-
- RegisteredStructure
-
-
- 一注结构专业
- 考试
-
-
-
- 每日学习总结
- /posts/2022/3F4M78Z.html
- 此处记录备考以来的所有情况。
-
-总结的主要内容为:
-
-- 作息时间说明
-- 学习时间说明
-- 复习知识点简要总结
-
-2022-02-23
-
-- 按时起床
-- 学习时间 >= 5 h
-
]]>
RegisteredStructure
@@ -2688,6 +2663,31 @@ href="http://www.cectcc.com/thread-249947-1-1.html">2019一注复习经验交流
+]]>
+
+ RegisteredStructure
+
+
+ 一注结构专业
+ 考试
+
+
+
+ 每日学习总结
+ /posts/2022/3F4M78Z.html
+ 此处记录备考以来的所有情况。
+
+总结的主要内容为:
+
+- 作息时间说明
+- 学习时间说明
+- 复习知识点简要总结
+
+2022-02-23
+
+- 按时起床
+- 学习时间 >= 5 h
+
]]>
RegisteredStructure
@@ -4269,6 +4269,35 @@ href="http://www.360doc.com/content/19/0612/10/8253947_841919236.shtml">光猫
蓝牙键盘
+
+ 最全家庭关系称呼汇总
+ /posts/2023/28RRCMN.html
+ 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
+汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+
+关系计算器
+
+
+参考
+本文参考以下文章,在此表示诚挚谢意!
+
+]]>
+
+ Tricks
+
+
+ Tricks
+
+
深入原理学习汽车驾驶
/posts/2022/1ZBGNQC.html
@@ -4639,35 +4668,6 @@ href="https://www.pcauto.com.cn/jxwd/2065/20654165.html">标准车库尺寸是
galens
-
- 最全家庭关系称呼汇总
- /posts/2023/28RRCMN.html
- 亲戚称呼是指以自己为中心所确定的亲属成员,是建立在血亲姻亲基础上的亲属之间相互称呼的名称、叫法。它是以本人为轴心的确定亲属与本人关系的标志。
-汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
-
-关系计算器
-
-
-参考
-本文参考以下文章,在此表示诚挚谢意!
-
-]]>
-
- Tricks
-
-
- Tricks
-
-
管理 Microstation CE 版本的环境配置
/posts/2019/7W71XB.html
@@ -4887,103 +4887,6 @@ leaderElement 传入进去,它里面会与 header 进行关联,并添加到
这个父类黑箱子,而要设置,就要进行拆箱,我们不知道究竟拆成什么类型?
这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 将元素的颜色设置为 ByLevel
- /posts/2020/31H546G.html
- 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
--1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
-
-简介
-设置元素的属性一般是创建一个
-ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
-转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color);
-而在 ORD 中,我们可以得知,ColorByLevel 的值是
--1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
-真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
-致谢
-解决思路来自优先社区:
-https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- MS中曲线总结
- /posts/2020/37N8G1C.html
- MS
-二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
-API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
-MS 中原生的 API 实现我们自己想要的功能。
-本文对常用的 ms 中的线条使用进行总结。
-
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
-
- 优先社区二次开发学习
- /posts/2020/MKZP4Q.html
- 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
-
-command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
-是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
-表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
-针对元素描述符:mdlElmdscr_computeRange
-针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述:
-首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
-但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
-然后COPY到另一个文件中去。
-
-想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
-可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
-在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
-yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
-Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>
Bentley
@@ -9406,6 +9309,36 @@ System Category
ORD
+
+ 将元素的颜色设置为 ByLevel
+ /posts/2020/31H546G.html
+ 在给元素添加颜色的过程中,发现不能直接将颜色号设置成
+-1(ByLevel),经过在优先社区的查找,终于解决了,特此记录。
+
+简介
+设置元素的属性一般是创建一个
+ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter();
setter.SetColor(ElementPropertyUint.COLOR_BYLEVEL);
setter.SetWeight(1);
setter.SetLevel(GetLevel(SwLevel.sw_2D_点划线));
setter.SetLinestyle((int)ElementPropertyUint.STYLE_BYLEVEL,null);
setter.Apply(ele);
+转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color);
+而在 ORD 中,我们可以得知,ColorByLevel 的值是
+-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel
+真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint
{
// DgnPlatform.h 里面
public static uint COLOR_BYLEVEL = 0xffffffff;
public static uint COLOR_BYCELL = 0xfffffffe;
public static uint STYLE_BYLEVEL = 0x7fffffff;
public static uint STYLE_BYCELL = 0x7ffffffe;
public static uint WEIGHT_BYLEVEL = 0xffffffff;
public static uint WEIGHT_BYCELL = 0xfffffffe;
public static uint LEVEL_BYCELL = 64;
}
+致谢
+解决思路来自优先社区:
+https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
MS中曲线总结
/posts/2020/37N8G1C.html
@@ -9415,6 +9348,73 @@ API,有时候要实现一个功能,可能需要将曲线在多种类型中
MS 中原生的 API 实现我们自己想要的功能。
本文对常用的 ms 中的线条使用进行总结。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ MS中曲线总结
+ /posts/2020/37N8G1C.html
+ MS
+二开中,可能会处理很多的曲线,比如对曲线进行偏移,求交点,延长等等。每一种曲线,有它的特点和相应的
+API,有时候要实现一个功能,可能需要将曲线在多种类型中进行相互转化,从而利用
+MS 中原生的 API 实现我们自己想要的功能。
+本文对常用的 ms 中的线条使用进行总结。
+
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
+
+ 优先社区二次开发学习
+ /posts/2020/MKZP4Q.html
+ 最近发现优先社区二开版块中有很多精华的帖子,于是计划进行一一拜读,将所得记于此。
+
+command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber
+是一个长整型数,如0x01020345。其中的01(十六进制的前面两位)
+表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数:
+针对元素描述符:mdlElmdscr_computeRange
+针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述:
+首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。
+但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。
+然后COPY到另一个文件中去。
+
+想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。
+可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem;
ElementRef elemRef= dgnFileObj_findElemByID(mdlModelRef_getDgnFile (ACTIVEMODEL) , 42078 , FALSE);
elementRef_getElement(elemRef, &elem, elementRef_getElemSize( elemRef ));
mdlFence_fromShape( &elem );
mdlParams_setLock (0, ACTIVELOCK_FENCEVOID);
mdlParams_setLock (1, ACTIVELOCK_FENCEOVERLAP);
mdlState_startFenceCommand(FenceDeal, NULL, NULL, NULL, NULL, NULL, FENCE_NO_CLIP);
mdlFence_process( NULL ); mdlFence_clear( TRUE );
+在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int
+yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg)
{
ULong filePos;
DgnModelRefP currFileP;
MSElement el;
filePos = mdlElement_getFilePos (FILEPOS_CURRENT, &currFileP);
mdlElement_read (&el,currFileP,filePos);
return SUCCESS;
}
+Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>
Bentley
@@ -9477,54 +9477,6 @@ href="/2020/09/20/MDL开发中如何创建makefile文件/#">MDL开发中如何
MDL
-
- 元素的复制
- /posts/2021/2VBGV0Z.html
- 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
-
-Element 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnPlatformNET.dll
-Bentley.DgnPlatformNET
-
-
-
-//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
-SolidKernelEntity 克隆
-
-
-
-程序集
-命名空间
-
-
-
-
-Bentley.DgnDisplayNet.dll
-Bentley.DgnPlatformNET
-
-
-
-// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
-CurveVector 克隆
-调用对象的 Clone()
方法。
-]]>
-
- Bentley
- Develop
-
-
- Bentley二次开发
-
-
MDL开发中如何创建makefile文件
/posts/2020/353AZ4N.html
@@ -9669,6 +9621,54 @@ bmake Utility
MDL
+
+ 元素的复制
+ /posts/2021/2VBGV0Z.html
+ 在使用中,经常需要对 Benlety 中的对象进行克隆,以下进行总结。
+
+Element 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnPlatformNET.dll
+Bentley.DgnPlatformNET
+
+
+
+//复制元素
using (ElementCopyContext cc = new ElementCopyContext(dgnModel))
{
cc.WriteElements = false; //调整复制上下文环境不要立即写入元素
Element _cloneEle = cc.DoCopy(_el);
ElementPropertiesSetter eps = new ElementPropertiesSetter();
eps.SetColor(lineColor);
eps.SetWeight(LineWeight);
eps.Apply(_cloneEle); //设置颜色
_cloneEle.AddToModel();
return _cloneEle;
}
+SolidKernelEntity 克隆
+
+
+
+程序集
+命名空间
+
+
+
+
+Bentley.DgnDisplayNet.dll
+Bentley.DgnPlatformNET
+
+
+
+// 复制 SolidKernelEntity
CopyEntity(out SolidKernelEntity entityOut, SolidKernelEntity entityIn)
+CurveVector 克隆
+调用对象的 Clone()
方法。
+]]>
+
+ Bentley
+ Develop
+
+
+ Bentley二次开发
+
+
元素间相互转换
/posts/2021/1KH1955.html
@@ -9940,34 +9940,6 @@ alt="image-20220509115801614" />
CONNECTION Client
,重新打开。可以多试几次
使用代理
-]]>
-
- Bentley
- Problems
-
-
- Bentley
- Bentley问题处理
- galens
-
-
-
- ORD安装提示Failed copy payload xx的解决办法
- /posts/2023/304FHXE.html
-
-
-如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
-参考:
-
]]>
Bentley
@@ -10001,6 +9973,34 @@ alt="image-20220509162253268" />
VBA
rejected the OpenRoads Designer Application Object
+]]>
+
+ Bentley
+ Problems
+
+
+ Bentley
+ Bentley问题处理
+ galens
+
+
+
+ ORD安装提示Failed copy payload xx的解决办法
+ /posts/2023/304FHXE.html
+
+
+如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
+
+由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
+参考:
+
]]>
Bentley
@@ -10430,33 +10430,6 @@ keyin 命令:
galens
-
- 3dmax 文件如何导入到 dgn 中
- /posts/2022/29WK0R3.html
- 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
-
-
-转为 fbx
-导出为 3ds 文件
-
-在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-]]>
-
- Bentley
- UseSkill
-
-
- Bentley
- UseSkill
- galens
-
-
如何删除 ORD 中的工作空间
/posts/2022/T3NMZE.html
@@ -10492,6 +10465,33 @@ alt="image-20220314194812625" />
galens
+
+ 3dmax 文件如何导入到 dgn 中
+ /posts/2022/29WK0R3.html
+ 如果需要将 3dmax 模型文件导入到 dgn 中,可以有以下方法:
+
+
+转为 fbx
+导出为 3ds 文件
+
+在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
+]]>
+
+ Bentley
+ UseSkill
+
+
+ Bentley
+ UseSkill
+ galens
+
+
ORD 及 swBentley 安装教程
/posts/2022/3EFH36D.html
@@ -11897,34 +11897,6 @@ alt="类关系图" />
galens
-
- C# 优雅编程
- /posts/2022/54B652.html
-
-
- Develop
- DesignPattern
-
-
- C#
-
-
-
- 编程风格指南
- /posts/2022/1BXSKSD.html
- 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-
-]]>
-
- Develop
- DesignPattern
-
-
- 设计模式
- C#
-
-
23 个设计模式速览
/posts/2022/3HRNXN7.html
@@ -12551,52 +12523,31 @@ Pattern
- 在 Winform、WPF 中使用 Font Awesome
- /posts/2019/1TFVRP.html
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ C# 优雅编程
+ /posts/2022/54B652.html
+
+
+ Develop
+ DesignPattern
+
+
+ C#
+
+
+
+ 编程风格指南
+ /posts/2022/1BXSKSD.html
+ 本文总结了 C# 中的编程风格,使编写的代码更加优雅。
-项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
-
-Install-Package FontAwesome.Sharp
-
-功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
-
-- 在 Winform 上可以使用下列类
-
-- IconButton,
-- IconToolStripButton,
-- IconDropDownButton,
-- IconMenuItem,
-- IconPictureBox 或者
-- IconSplitButton
-
-- 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
-var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
-WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
-
-- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
-- 图片来源于网络
-
]]>
Develop
- DotNET
+ DesignPattern
+ 设计模式
C#
- .NET
@@ -13588,6 +13539,55 @@ href="https://github.com/awesome-inc/FontAwesome.Sharp">https://github.com/aweso
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ 在 Winform、WPF 中使用 Font Awesome
+ /posts/2019/1TFVRP.html
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+
+Install-Package FontAwesome.Sharp
+
+功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+
+- 在 Winform 上可以使用下列类
+
+- IconButton,
+- IconToolStripButton,
+- IconDropDownButton,
+- IconMenuItem,
+- IconPictureBox 或者
+- IconSplitButton
+
+- 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
+var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms
var image = IconChar.BatteryEmpty.ToImageSource(Brushes.Black, 16); // WPF
var customFontBitmap = MyCustomFont.ToBitmap(MyEnum.SomeIcon, 16, Color.Black); // Windows Forms, custom font
var customFontImage = MyCustomFont.ToImageSource(MyEnum.SomeIcon, Brushes.Black, 16); // WPF, custom font
+WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+
+- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp
+- 图片来源于网络
+
]]>
Develop
@@ -13648,6 +13648,117 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
+
+ PropertyGrid 中只显示部分属性
+ /posts/2020/35EQCZA.html
+ 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
+PropertyGrid控件就是Visual
+Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+
+普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
+属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给
+propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
+PropertyGrid 中用到的特性:
+
+DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
+"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
+get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
+访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
+
+如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
+自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
+下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
+显示结果:
+
+实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
+我们实现了下拉框类型转换器,但该如何使用呢?
+
+方法一:在属性上方添加标记
+[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
+使用方法:
+
+在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
+typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
+效果图如下:
+
+自定义要显示的属性
+PropertyGrid
+默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+
+- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
+[Browsable(false)]
+- 想通过自定义的 Attribute 来控制属性的显示
+
+这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
+实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
+致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized
+display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+
+
]]>
Develop
@@ -13670,153 +13781,6 @@ href="https://www.bbsmax.com/A/Gkz1ony25R/">https://www.bbsmax.com/A/Gkz1ony25R/
在 GetStandardValues 方法中,会传递下来一个 context, 而
context.Instance
就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- PropertyGrid 中只显示部分属性
- /posts/2020/35EQCZA.html
- 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头雾水,经过一段时间研究后,大概理解了Property的使用方法,下面仔细剖析一下。
-PropertyGrid控件就是Visual
-Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
-
-普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject
-属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给
-propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在
-PropertyGrid 中用到的特性:
-
-DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给
-"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有
-get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get
-访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
-
-如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
-自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类
public class PropertyManageCls : CollectionBase, ICustomTypeDescriptor
{
public void Add(Property value)
{
int flag=-1;
if (value != null)
{
if (base.List.Count>0)
{
IList <Property> mList=new List<Property>();
for (int i = 0; i < base.List.Count; i++)
{
Property p = base.List[i] as Property;
if (value.Name == p.Name)
{
flag = i;
}
mList.Add(p);
}
if (flag == -1)
{
mList.Add(value);
}
base.List.Clear();
foreach (Property p in mList)
{
base.List.Add(p);
}
}
else
{
base.List.Add(value);
}
}
}
public void Remove(Property value)
{
if(value!=null&&base.List.Count>0)
base.List.Remove(value);
}
public Property this[int index]
{
get
{
return (Property)base.List[index];
}
set
{
base.List[index] = (Property)value;
}
}
#region ICustomTypeDescriptor 成员
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this,true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptor[] newProps = new PropertyDescriptor[this.Count];
for (int i = 0; i < this.Count; i++)
{
Property prop = (Property)this[i];
newProps[i] = new CustomPropertyDescriptor(ref prop, attributes);
}
return new PropertyDescriptorCollection(newProps);
}
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
#endregion
}
//属性类
public class Property
{
private string _name=string.Empty;
private object _value=null;
private bool _readonly=false;
private bool _visible=true;
private string _category=string.Empty;
TypeConverter _converter=null;
object _editor = null;
private string _displayname = string.Empty;
public Property(string sName, object sValue)
{
this._name = sName;
this._value = sValue;
}
public Property(string sName, object sValue, bool sReadonly, bool sVisible)
{
this._name = sName;
this._value = sValue;
this._readonly = sReadonly;
this._visible = sVisible;
}
public string Name //获得属性名
{
get
{
return _name;
}
set
{
_name=value;
}
}
public string DisplayName //属性显示名称
{
get
{
return _displayname;
}
set
{
_displayname = value;
}
}
public TypeConverter Converter //类型转换器,我们在制作下拉列表时需要用到
{
get
{
return _converter;
}
set
{
_converter = value;
}
}
public string Category //属性所属类别
{
get
{
return _category;
}
set
{
_category = value;
}
}
public object Value //属性值
{
get
{
return _value;
}
set
{
_value=value;
}
}
public bool ReadOnly //是否为只读属性
{
get
{
return _readonly;
}
set
{
_readonly = value;
}
}
public bool Visible //是否可见
{
get
{
return _visible;
}
set
{
_visible = value;
}
}
public virtual object Editor //属性编辑器
{
get
{
return _editor;
}
set
{
_editor = value;
}
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
Property m_Property;
public CustomPropertyDescriptor(ref Property myProperty, Attribute[] attrs)
: base(myProperty.Name, attrs)
{
m_Property = myProperty;
}
#region PropertyDescriptor 重写方法
public override bool CanResetValue(object component)
{
return false;
}
public override Type ComponentType
{
get
{
return null;
}
}
public override object GetValue(object component)
{
return m_Property.Value;
}
public override string Description
{
get
{
return m_Property.Name;
}
}
public override string Category
{
get
{
return m_Property.Category;
}
}
public override string DisplayName
{
get
{
return m_Property.DisplayName!=""?m_Property.DisplayName:m_Property.Name;
}
}
public override bool IsReadOnly
{
get
{
return m_Property.ReadOnly;
}
}
public override void ResetValue(object component)
{
//Have to implement
}
public override bool ShouldSerializeValue(object component)
{
return false;
}
public override void SetValue(object component, object value)
{
m_Property.Value = value;
}
public override TypeConverter Converter
{
get
{
return m_Property.Converter;
}
}
public override Type PropertyType
{
get { return m_Property.Value.GetType(); }
}
public override object GetEditor(Type editorBaseType)
{
return m_Property.Editor==null? base.GetEditor(editorBaseType):m_Property.Editor;
}
#endregion
}
-下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property("ID", "1", false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pmc.Add(pp);
propertyGrid1.SelectObject=pmc;
-显示结果:
-
-实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器
public class DropDownListConverter : StringConverter
{
object[] m_Objects;
public DropDownListConverter(object[] objects)
{
m_Objects = objects;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;//true下拉框不可编辑
}
public override
System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
//我们可以直接在内部定义一个数组,但并不建议这样做,这样对于下拉框的灵活性有很大影响
return new StandardValuesCollection(m_Objects);
// 此处一般是根据 context 中传递下来的 Instance,从中获取下拉的条件,动态生成下拉选项
}
}
-我们实现了下拉框类型转换器,但该如何使用呢?
-
-方法一:在属性上方添加标记
-[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.Modal;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
IWindowsFormsEditorService edSvc =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (edSvc != null)
{
// 可以打开任何特定的对话框
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
if (dialog.ShowDialog().Equals(DialogResult.OK))
{
return dialog.FileName;
}
}
return value;
}
}
-使用方法:
-
-在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem),
-typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
-效果图如下:
-
-自定义要显示的属性
-PropertyGrid
-默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
-
-- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为
-[Browsable(false)]
-- 想通过自定义的 Attribute 来控制属性的显示
-
-这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
-实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor
{
#region ICustomTypeDescriptor
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
// 修改此属性,进行展示
public PropertyDescriptorCollection GetProperties()
{
return TypeDescriptor.GetProperties(this,true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 特别注意,此处的 true 代表不使用当前类的 GetProperties 方法来获取属性,默认为 false,这会导致无限循环,从而导致栈溢出
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(this, attributes, true);
PropertyDescriptor[] properties = pdc.Cast<PropertyDescriptor>().Where(item => item.Attributes.Cast<Attribute>().Any(itemA => itemA is BrowsableAttribute ba && ba.Browsable)).ToArray();
return new PropertyDescriptorCollection(properties);
}
#endregion
}
-致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized
-display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
-
-
-]]>
-
- Develop
- DotNET
-
-
- C#
- .NET
-
-
-
- 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
- /posts/2020/16SCXPH.html
- 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
-程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
-
-
-解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
-
-第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
-在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
-特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>
Develop
@@ -15538,6 +15502,42 @@ href="https://blog.csdn.net/binnygoal/article/details/79557746">非常完善的L
Log4net
+
+ 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式
+ /posts/2020/16SCXPH.html
+ 用 C# 写了一个服务,为了能够方便调试,于是又写了一个 winform
+程序。当我在这个程序中打开一个文件对话框时,出现了如下错误。
+
+
+解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+
+第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
+在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
+特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>
+
+ Develop
+ DotNET
+
+
+ C#
+ .NET
+
+
LiteDB中id的理解与使用
/posts/2021/2NDY00Q.html
@@ -15719,31 +15719,6 @@ https://icons8.cn/illustrations/style--pale
FrontEnd
-
- Js 开发常用 npm 包合集
- /posts/2023/1KT0Y3S.html
- 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
-npm 包。方便在后续项目中应用。
-
-Excel
-
-参考:
-
-]]>
-
- Develop
- Javascript
-
-
- Javasript
-
-
色彩搭配方法
/posts/2022/2K21HCS.html
@@ -15963,6 +15938,31 @@ href="https://baijiahao.baidu.com/s?id=1678943509942368945">配色不要慌!
galens
+
+ Js 开发常用 npm 包合集
+ /posts/2023/1KT0Y3S.html
+ 本文根据日常开发需求,通过对比现有各个包,总结出在个人认知范围内认为最为合适的
+npm 包。方便在后续项目中应用。
+
+Excel
+
+参考:
+
+]]>
+
+ Develop
+ Javascript
+
+
+ Javasript
+
+
邮件群发助手文档
/posts/2020/2QMK677.html
@@ -16423,22 +16423,6 @@ name,则命名为空,不能指定参数名来引用。
galens
-
- RESTful API 规范
- /posts/2020/K6BTSD.html
- HTTP状态码:
-摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>
-
- Develop
- Web
-
-
- Web
- RESTful
-
-
最全最详细 http 状态码介绍
/posts/2020/25EQ87B.html
@@ -17246,6 +17230,22 @@ href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/504">504HTTP
+
+ RESTful API 规范
+ /posts/2020/K6BTSD.html
+ HTTP状态码:
+摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>
+
+ Develop
+ Web
+
+
+ Web
+ RESTful
+
+
网络编程入门
/posts/2020/WXDAQ3.html
@@ -17490,28 +17490,6 @@ alt="img" />
生活感悟
-
- 游沅江有感
- /posts/2017/HPBWTD.html
- 今天是2017年4月15日。
-本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
-分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
-
-到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
老卓的礼物
/posts/2017/05KG8X.html
@@ -17526,6 +17504,28 @@ alt="img" />
事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 游沅江有感
+ /posts/2017/HPBWTD.html
+ 今天是2017年4月15日。
+本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30
+分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+
+到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>
Inspiration
@@ -17634,28 +17634,6 @@ alt="图片" />
生活感悟
-
- 想念挚友
- /posts/2017/1AJP2Y0.html
- 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
-
-去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
三世
/posts/2017/BPMA7E.html
@@ -17671,6 +17649,28 @@ alt="图片" />
工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
+
+ 想念挚友
+ /posts/2017/1AJP2Y0.html
+ 三毛说:“最好的爱情就是相处不累”。我觉得这句话也可以用来形容友谊,最好的友情也便是相处不累。
+
+去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>
Inspiration
@@ -17727,32 +17727,6 @@ alt="图片" />3年前,初听到西塘这个名字的时候,便烙在了灵
生活感悟
-
- 七月与安生
- /posts/2017/2P24YP8.html
- 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
-
-七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
-“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>
-
- Inspiration
- 2017年
-
-
- 散文
-
-
无邪
/posts/2017/331FR19.html
@@ -17782,6 +17756,32 @@ alt="图片" />
生活感悟
+
+ 七月与安生
+ /posts/2017/2P24YP8.html
+ 有一对闺蜜,一个叫七月,另一个是安生,七月安静,在大人面前表现得很乖,安生开朗,七月妈妈说她什么都好,只是缺了点运气。安生没考上大学,出去闯荡,换了很多男朋友,最后找了个老实人结了婚,过上了相夫教子的幸福生活,七月和男友同一所大学,毕业后谈婚论嫁,所有人都认为他们是最合适的一对,会很幸福,但是他不够爱她,在结婚的时候离去,七月终于找到借口出去闯荡。
+
+七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高
+“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>
+
+ Inspiration
+ 2017年
+
+
+ 散文
+
+
兰州
/posts/2018/202BKMX.html
@@ -18482,6 +18482,149 @@ alt="image-20230717005034407" />
galens
+
+ 《非暴力沟通》读书笔记
+ /posts/2023/3KQXHMP.html
+
+读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+
+总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4
+个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+
+重要的步骤再次重复一遍:
+
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
+
+第一章 让爱融入生活
+
+- 转变谈话和岭听的方式,改用非暴力沟通
+- 既诚实、清晰地表达自己,又尊重与倾听他人
+
+非暴力沟通过程:
+
+- 先客观观察
+- 接着表达感受
+- 然后明确需要
+- 最后提出请求
+
+第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+
+- 用并道德标准去评判别人
+- 与其它案例进行比较,达不到自己的期望
+- 为了回避责任而失去理性
+- 强人所难
+
+总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
+“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
+第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
+想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
+为了能够清楚表达自己的感受,可以借鉴以下词汇:
+
+- 需要得到时满足时的感受:
+
+兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+
+- 需要没有得到满足时的感受:
+
+害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+
+- 责备自己
+- 指责他人
+- 体会白己的感受和需要
+- 体会他人的感受和需要
+
+
+根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
+第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+
+- 提出的请求要具体。
+- 在交流中明确谈话目的,不要跑题
+- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
+
+在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+
+- 体会自己的感受和需要
+- 大声地提出请求
+- 换—个环境
+
+第八章 倾听的力量
+
+- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
+- 通过倾听,可以减少可能发生的潜在暴力
+- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
+
+第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+
+将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
+第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+
+- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
+- 想—想是什么想法使我们生气了
+- 了解自己想要满足的需要
+- 表达感受和尚未满足的需要
+
+第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+
+- 对方做了什么事情使我们的生活得到了改善
+- 我们有哪些需要得到了满足
+- 我们的心情怎么样
+
+当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>
+
+ Inspiration
+ 读书笔记
+
+
+ 读书笔记
+
+
01-建筑结构可靠性设计
/posts/2022/2XR0S9K.html
@@ -18593,149 +18736,6 @@ class="math inline">\(S_{Q1}\) 来计算,然后取最大值
galens
-
- 《非暴力沟通》读书笔记
- /posts/2023/3KQXHMP.html
-
-读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
-
-总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4
-个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
-
-重要的步骤再次重复一遍:
-
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
-
-第一章 让爱融入生活
-
-- 转变谈话和岭听的方式,改用非暴力沟通
-- 既诚实、清晰地表达自己,又尊重与倾听他人
-
-非暴力沟通过程:
-
-- 先客观观察
-- 接着表达感受
-- 然后明确需要
-- 最后提出请求
-
-第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
-
-- 用并道德标准去评判别人
-- 与其它案例进行比较,达不到自己的期望
-- 为了回避责任而失去理性
-- 强人所难
-
-总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
-“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
-第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
-想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
-为了能够清楚表达自己的感受,可以借鉴以下词汇:
-
-- 需要得到时满足时的感受:
-
-兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
-
-- 需要没有得到满足时的感受:
-
-害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
-
-- 责备自己
-- 指责他人
-- 体会白己的感受和需要
-- 体会他人的感受和需要
-
-
-根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
-第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
-
-- 提出的请求要具体。
-- 在交流中明确谈话目的,不要跑题
-- 主动请求反馈。可以主动问一句:"我的意思楚了吗?"
-
-在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
-
-- 体会自己的感受和需要
-- 大声地提出请求
-- 换—个环境
-
-第八章 倾听的力量
-
-- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。
-- 通过倾听,可以减少可能发生的潜在暴力
-- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求
-
-第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
-
-将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
-第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
-
-- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己
-- 想—想是什么想法使我们生气了
-- 了解自己想要满足的需要
-- 表达感受和尚未满足的需要
-
-第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
-
-- 对方做了什么事情使我们的生活得到了改善
-- 我们有哪些需要得到了满足
-- 我们的心情怎么样
-
-当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>
-
- Inspiration
- 读书笔记
-
-
- 读书笔记
-
-
楼面和屋面活荷载
/posts/2022/10AW0YR.html
@@ -18857,212 +18857,6 @@ class="math inline">\(\beta_{gz}\),即高度 z
考试
-
- 免费的视频剪辑素材资源
- /posts/2023/1YG7ZB2.html
- 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-
-本文随着视频剪辑的熟练度增加,会不定期进行更新
-
-
-汇总
-
-
-
-
-
-
-
-
-名称
-特点
-下载方式
-
-
-
-
-Pexels video
-视频数量种类多
-无需注册
-
-
-Pixabay视频
-视频数量种类多
-无需注册,免费商用
-
-
-Mixkit
-视频、音乐素材多
-部分可商用
-
-
-Videvo
-免费视频、音乐、音效素材
-无需注册
-
-
-IgniteMotion
-仅背景视屏
-
-
-
-Coverr
-多样素材
-部分商用
-
-
-Mazwai
-多样素材
-可商用
-
-
-Videezy
-多样素材
-
-
-
-
-鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
-
-经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
-Pexels video,同样是免费下载
-Pexels video
-上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
-
-同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
-
-Mixkit
-是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
-Elements等付费产品不同,Mixkit
-的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
-Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
-
-Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
-把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
-
-IgniteMotion
-是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion
-的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
-中找一个视频,无需搜索就能快速找到
-Coverr
-
-Coverr
-是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
-
-Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
-
-Life of Vids
-是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
-
-Videezy
-是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
-
-Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
-
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
-
- 免费制作 MG 动画
- /posts/2023/2WHBPR.html
- 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
-动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
-就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
-
-PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-
-缺点:
-
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
-
-在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG
-动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>
-
- Skill
- Video
-
-
- Skill
- Video
-
-
如何解决 Adguard 拖慢网速问题
/posts/2020/1W2Z51R.html
@@ -22167,81 +21961,236 @@ href="https://dotnet.microsoft.com/download/dotnet-framework">单击跳转下载
iEPC 设计协同使用教程
/posts/2023/2W88WG9.html
-
-
-image-20230916175043880
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
+
+
+
+
+
+
+
+
+
+
+]]>
+
+ Software
+ iEPC
+
+
+ Software
+ iEPC
+ galens
+
+
+
+ 免费的视频剪辑素材资源
+ /posts/2023/1YG7ZB2.html
+ 最近在工作上要制作几个微课,平时感觉制作一个视频还挺简单的,当到实际上手的时候,才发现力不从心,特别是素材,无从找起,因此本文对如何收集素材进行一个简要总结,以便今后更加高效的使用。
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
-设计协同介绍
-项目创建及任务安排
+
+汇总
+
+
+
+
+
+
+
+
+名称
+特点
+下载方式
+
+
+
+
+Pexels video
+视频数量种类多
+无需注册
+
+
+Pixabay视频
+视频数量种类多
+无需注册,免费商用
+
+
+Mixkit
+视频、音乐素材多
+部分可商用
+
+
+Videvo
+免费视频、音乐、音效素材
+无需注册
+
+
+IgniteMotion
+仅背景视屏
+
+
+
+Coverr
+多样素材
+部分商用
+
+
+Mazwai
+多样素材
+可商用
+
+
+Videezy
+多样素材
+
+
+
+
+鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+
+经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频
+Pexels video,同样是免费下载
+Pexels video
+上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+
+同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+
+Mixkit
+是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato
+Elements等付费产品不同,Mixkit
+的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere
+Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+
+Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo
+把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+
+IgniteMotion
+是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion
+的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion
+中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
+Coverr
+是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
+Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids
+是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy
+是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+
+]]>
+
+ Skill
+ Video
+
+
+ Skill
+ Video
+
+
+
+ 免费制作 MG 动画
+ /posts/2023/2WHBPR.html
+ 在进行视屏制作的过程中,有时候我们需要插入一些 MG(Motion Graphics)
+动画,一般使用 AE 制作,但是对于一些简单的文字、流程动画,使用 AE
+就杀鸡用牛刀了,因此我们一般使用一些速成的方式来制作。
+
+PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
-复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
+
+- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
-上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG
+动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>
- Software
- iEPC
+ Skill
+ Video
- Software
- iEPC
- galens
+ Skill
+ Video
@@ -24067,6 +24016,66 @@ alt="image-20220522105109562" />
galens
+
+ Bentley中在.NET下监听元素双击事件
+ /posts/2021/2JZQM2W.html
+ 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
+
+在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
+// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
+
+程序使用了 COM 接口,所以需要的引入
+Bentley.MicroStation.dll,COM接口位于
+Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+
+
+
+ Microstation 中监听元素修改事件
+ /posts/2022/1GXJ3PN.html
+ 在进行 Microstation
+二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
+上注册 ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
+获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
+public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
+获取新元素
+属性 NewElement
代表新元素。
+获取旧元素
+参考
+
+]]>
+
+ Bentley
+ Develop
+ 事件
+
+
+ Bentley二次开发
+ Bentley
+
+
MS 关于 Fraction 的使用说明
/posts/2020/4JEF7M.html
@@ -25152,40 +25161,6 @@ href="https://www.yuque.com/bentleysystems/ms/gw1qex">几何继承关系层次
Bentley
-
- MS中各个对象获取的DTransform含义
- /posts/2022/1RDA3BV.html
- 在进行矩阵转换时,谨记如下公式: \[
-\begin{aligned}
-M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
-E \cdot P_{world} &= M_{local} \cdot P_{local} \\
-\therefore P_{world} &= M_{local} \cdot P_{local} \\
-\end{aligned}
-\] M
-可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
-在理解 MS 中各个对象返回的 DTransform
-含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
-
-DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
-planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
-的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
-上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>
-
- Bentley
- Develop
- 几何变换
-
-
- Bentley
- 二次开发
-
-
由浅入深地理解样条曲线
/posts/2022/1CPW2GG.html
@@ -25883,6 +25858,40 @@ Curves: Closed Curves
galens
+
+ MS中各个对象获取的DTransform含义
+ /posts/2022/1RDA3BV.html
+ 在进行矩阵转换时,谨记如下公式: \[
+\begin{aligned}
+M_{world} \cdot P_{world} &= M_{local} \cdot P_{local} \\
+E \cdot P_{world} &= M_{local} \cdot P_{local} \\
+\therefore P_{world} &= M_{local} \cdot P_{local} \\
+\end{aligned}
+\] M
+可以叫做坐标系的度量矩阵,将某个坐标系统转到另一个坐标系,是在原坐标系的值上左乘新坐标系度量矩阵的逆。
+在理解 MS 中各个对象返回的 DTransform
+含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+
+DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
+planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld
+的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值
public static DTransform3d FromOriginAndColumns(DPoint3d origin, DVector3d xVector, DVector3d yVector, DVector3d zVector)
+上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>
+
+ Bentley
+ Develop
+ 几何变换
+
+
+ Bentley
+ 二次开发
+
+
求解矩阵的逆
/posts/2022/3MW6BH0.html
@@ -26122,66 +26131,6 @@ href="https://communities.bentley.com/communities/other_communities/chinafirst/f
Bentley
-
- Bentley中在.NET下监听元素双击事件
- /posts/2021/2JZQM2W.html
- 在用C#进行Bentley二次开发的过程中,我们可能有这个需求:希望获取双击的元素,然后响应修改命令。通过查找相关资料,最终实现方式如下。
-
-在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
-// 该类继承 Bentley.MstnPlatformNET.AddIn
protected override int Run(string[] commandLine)
{
// 其它操作
// ...
// 监听双击鼠标事件,实现修改
this.SelectionChangedEvent += OnSelectionChanged;
return 0;
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
switch (e.Action)
{
case SelectionChangedEventArgs.ActionKind.DoubleClickElement:
// 通过 FilePosition 获取元素
var elem = GetElementByFilePosition(e.FilePosition);
// 对元素进行其它操作
break;
default:return;
}
}
// 通过 filePosition 获取 Element
// 采用 COM 接口获取 filePosition 对应的 ElementId
// 然后通过 elementId 获取.NET下的 Element
private Element GetElementByFilePosition (uint filePosition)
{
var app = Utilities.ComApp;
var elemCache = app.ActiveModelReference.GraphicalElementCache;
var index = elemCache.IndexFromFilePosition((int)filePosition);
if (elemCache.IsElementValid(index))
{
var elem = elemCache.GetElement(index);
var longId = elem.ID;
return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId);
}
return null;
}
-
-程序使用了 COM 接口,所以需要的引入
-Bentley.MicroStation.dll,COM接口位于
-Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
-
-
-
- Microstation 中监听元素修改事件
- /posts/2022/1GXJ3PN.html
- 在进行 Microstation
-二次开发时,有时候需要监听元素的修改事件,实现联动修改,可以在 Addin
-上注册 ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
-获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
-public enum ChangeTrackKind
{
Delete = 1,
Add = 2,
Modify = 3,
ModifyFence = 5,
Mark = 7,
ModelAdd = 9,
ModelDelete = 10,
AddXAttribute = 11,
DeleteXAttribute = 12,
ModifyXAttribute = 13,
ReplaceXAttribute = 14
}
-获取新元素
-属性 NewElement
代表新元素。
-获取旧元素
-参考
-
-]]>
-
- Bentley
- Develop
- 事件
-
-
- Bentley二次开发
- Bentley
-
-
如何调用 Microstation 的消息管理器
/posts/2022/1NF37FV.html
@@ -30832,60 +30781,6 @@ ViewModel 请求关闭它(参见上面的 RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
- /posts/2020/1YXZ99D.html
- 概述(Overview)
-BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
-而且,它增加了一些有用的额外功能:
-
-新增AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
-新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
-它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
-刷新
方法很方便。
-它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
-这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI
-线程,操作将在这种情况下同步进行。
-所有 PropertyChanged
和
-CollectionChanged
事件总是在 UI 线程上引发。
-
-这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31123,6 +31018,60 @@ IModelValidator (Asynchronously))
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName)
{
var result = await this.Validator.ValidateAsync(this.subject, propertyName).ConfigureAwait(false);
return result.Errors.Select(x => x.ErrorMessage);
}
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)12-BindableCollection
+ /posts/2020/1YXZ99D.html
+ 概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
+
+而且,它增加了一些有用的额外功能:
+
+新增AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
+新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
+它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
+刷新
方法很方便。
+它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
+这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
+
+这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI
+线程,操作将在这种情况下同步进行。
+所有 PropertyChanged
和
+CollectionChanged
事件总是在 UI 线程上引发。
+
+这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
]]>
Develop
@@ -31304,6 +31253,52 @@ Weak Event Subscriptions)
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
+]]>
+
+ Develop
+ DotNET
+ Stylet 框架
+
+
+ MVVM
+ WPF
+
+
+
+ WPF MVVM Stylet使用文档(中文)18-Logging
+ /posts/2020/4NQDGJ.html
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+
+快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
+这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
+定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet
+将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
+public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
+然后,配置 LogManager
+来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
+在应用程序中进行日志记录(Logging
+within your Application)
+我建议不要用 Stylet.Logging
+在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
+Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net
+是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
+Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
+NLog、log4net或其他框架。
]]>
Develop
@@ -31455,52 +31450,6 @@ Stylet 将在 View for ViewModelType.SomeChildViewModel
ViewModels 的原因非常相似: 这意味着打开 IoC 容器(我们需要找到用户的
IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
-
- Develop
- DotNET
- Stylet 框架
-
-
- MVVM
- WPF
-
-
-
- WPF MVVM Stylet使用文档(中文)18-Logging
- /posts/2020/4NQDGJ.html
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
-
-快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart()
{
Stylet.Logging.LogManager.Enabled = true;
}
-这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
-定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet
-将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
-public class MyLogger : Stylet.Logging.ILogger
{
public MyLogger(string loggerName)
{
// TODO
}
public void Info(string format, params object[] args)
{
// TODO
}
public void Warn(string format, params object[] args)
{
// TODO
}
public void Error(Exception exception, string message = null)
{
// TODO
}
}
-然后,配置 LogManager
-来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart()
{
Stylet.Logging.LogManager.LoggerFactory = name => new MyLogger(name);
Stylet.Logging.LogManager.Enabled = true;
}
-在应用程序中进行日志记录(Logging
-within your Application)
-我建议不要用 Stylet.Logging
-在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让
-Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net
-是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑
-Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接
-NLog、log4net或其他框架。
]]>
Develop
@@ -31787,6 +31736,23 @@ Overflow
webview2
+
+ C# 读取嵌入的文件
+ /posts/2021/2P07T4K.html
+ 如何在 C# 中读取嵌入的文件资源?
+
+// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
.NET Core 单元测试从零基础到项目应用
/posts/2022/3D1SMMC.html
@@ -31916,40 +31882,6 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
单元测试
-
- 数组下标无限循环算法
- /posts/2021/1MAH7MY.html
- 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
-
-// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
-
- C# 读取嵌入的文件
- /posts/2021/2P07T4K.html
- 如何在 C# 中读取嵌入的文件资源?
-
-// 读取程序中嵌入的文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("命名空间.文件夹名(多层级用.分隔).文件名(带后缀)");
StreamReader sr = new StreamReader(stream, Encoding.UTF8); // 编码格式用utf8,防止中文乱码
var systemShortcutsConfig = sr.ReadToEnd();
sr.Close();
stream.Close();
-]]>
-
- Develop
- DotNET
- 实用代码
-
-
- C#
- 实用代码
-
-
C# 通过 ()=>obj.Property 的形式获取实例和属性名
/posts/2022/1A0Q13P.html
@@ -31967,6 +31899,23 @@ href="https://www.cnblogs.com/jara/p/7152843.html">C#单元测试:使用Moq框
href="https://stackoverflow.com/questions/5092387/how-can-i-get-object-instance-from-foo-title-expression">How
can I get object instance from ()=>foo.Title expression
+]]>
+
+ Develop
+ DotNET
+ 实用代码
+
+
+ C#
+ 实用代码
+
+
+
+ 数组下标无限循环算法
+ /posts/2021/1MAH7MY.html
+ 在进行数组访问时,为了防止数组溢出,可以在在使用中对下标进行处理。处理代码如下:
+
+// 用于for循环中,最大值溢出时返回到开始
public static int CycleInt(this int index, int count)
{
int indexTemp = index % count;
if (index < 0) return count + indexTemp;
return indexTemp;
}
]]>
Develop
@@ -32315,6 +32264,38 @@ href="https://notes.jindll.com/node/egg-redis%E5%B8%B8%E7%94%A8api.html#%E5%8A%9
eggjs
+
+ eggjs 实现文件下载
+ /posts/2022/198SKHP.html
+ 本文 介绍了在 eggjs
+中如何编写下载模块供其它终端进行文件下载的方法。
+
+Eggjs 官方方法
+async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
+支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
+const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
+分段下载
+未完成。
+参考
+
+- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
+- eggjs怎么实现文件下载?
+
+]]>
+
+ Develop
+ Javascript
+ Eggjs
+
+
+ eggjs
+ 文件下载
+
+
eggjs 给路径添加别名并实现智能提示
/posts/2022/3M46N6F.html
@@ -32362,38 +32343,6 @@ href="%5Begg.js%20路径别名配置%20module-alias_pyp_demon的博客-CSDN博
galens
-
- eggjs 实现文件下载
- /posts/2022/198SKHP.html
- 本文 介绍了在 eggjs
-中如何编写下载模块供其它终端进行文件下载的方法。
-
-Eggjs 官方方法
-async index() {
this.ctx.body = [
'<a download href="/download">download</a>',
'<br>',
'<a download href="/download-image">download image</a>',
].join('');
}
// 向下传递流
async download() {
const filePath = path.resolve(this.app.config.static.dir, 'hello.txt');
this.ctx.attachment('hello.txt');
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
// 从其它地方转存下载文件
async downloadImage() {
const url = 'http://cdn2.ettoday.net/images/1200/1200526.jpg';
const res = await this.ctx.curl(url, {
streaming: true,
});
this.ctx.type = 'jpg';
this.ctx.body = res.res;
}
-支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
-const fs = require('fs')
const util = require('util')
...
async download() {
const filePath = '/path/to/file';
const fileSize = (await util.promisify(fs.stat)(filePath)).size.toString();
this.ctx.attachment(filePath);
this.ctx.set('Content-Length', fileSize);
this.ctx.set('Content-Type', 'application/octet-stream');
this.ctx.body = fs.createReadStream(filePath);
}
-分段下载
-未完成。
-参考
-
-- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js
-- eggjs怎么实现文件下载?
-
-]]>
-
- Develop
- Javascript
- Eggjs
-
-
- eggjs
- 文件下载
-
-
js对象获取属性的几种方法
/posts/2020/1T9E994.html
@@ -32805,6 +32754,28 @@ href="https://es6.ruanyifeng.com/#docs/promise">ES6入门 之 Promise
promise
+
+ 数组中 unshift 与解构赋值一起使用,顺序错误分析
+ /posts/2020/1SH18GY.html
+ js 数组为空时,使用 unshift
+方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
+
+代码复现:
+const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
+// 结果
空数组 unshift 后的值: [ 1, 2 ]
+我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
+那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>
+
+ Develop
+ Javascript
+ JSLanguage
+
+
+ Javascript
+
+
js中对象的创建及理解
/posts/2020/ZWWE36.html
@@ -32892,28 +32863,6 @@ sayName 属性设置成等于全局的 sayName 函数。这样一来,由于 sa
js对象
-
- 数组中 unshift 与解构赋值一起使用,顺序错误分析
- /posts/2020/1SH18GY.html
- js 数组为空时,使用 unshift
-方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。
-
-代码复现:
-const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
-// 结果
空数组 unshift 后的值: [ 1, 2 ]
-我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果
空数组 unshift 后的值: [ 2, 1 ]
-那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>
-
- Develop
- Javascript
- JSLanguage
-
-
- Javascript
-
-
javalscript 中的原型来源和理解
/posts/2021/1RYMZHY.html
@@ -33690,42 +33639,6 @@ href="https://blog.csdn.net/huzhenv5/article/details/105231011">ES6和commonJs
galens
-
- npm镜像源管理工具nrm使用
- /posts/2022/W1573T.html
- 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
-的镜像源。
-
-安装
-npm install -g nrm
-使用
-查看可用源列表:
-nrm ls
-
-结果中带 * 号的为当前使用的源
-
-快速切换:
-nrm use xxx
-增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
-nrm add <registry> <url>
-删除:
-nrm del <registry>
-测试某个源的速度:
-nrm test xxx
-]]>
-
- Develop
- Javascript
- Package
-
-
- npm
- pakage
- nrm
-
-
npm包开发建议
/posts/2022/31N5JWW.html
@@ -33786,6 +33699,42 @@ npm 包
npm包
+
+ npm镜像源管理工具nrm使用
+ /posts/2022/W1573T.html
+ 通过 nrm(npmregistry manager) 可以很方面的管理和切换 npm
+的镜像源。
+
+安装
+npm install -g nrm
+使用
+查看可用源列表:
+nrm ls
+
+结果中带 * 号的为当前使用的源
+
+快速切换:
+nrm use xxx
+增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
+nrm add <registry> <url>
+删除:
+nrm del <registry>
+测试某个源的速度:
+nrm test xxx
+]]>
+
+ Develop
+ Javascript
+ Package
+
+
+ npm
+ pakage
+ nrm
+
+
yarn 常用命令
/posts/2022/AKDK4Z.html
@@ -34037,6 +33986,118 @@ data-cites="justintulk/solve-module-import-aliasing-for-webpack-jest-and-vscode-
Package
+
+ verdaccio 私有化配置
+ /posts/2022/38ND00E.html
+ 添加用户
+添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/
+授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/
+参考
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ verdaccio
+ 私服npm
+
+
+
+ WindowsServer安装Verdaccio安装排坑日记
+ /posts/2022/7MJX55.html
+ 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
+verdaccio,cnpm 后,最后选择了
+verdaccio。因为它够方便和快速,同时也够用。
+
+npm 私有仓库
+npm 私有仓库的好处
+
+安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
+包的同时,将关联的依赖包缓存到 npm
+私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
+npm 私有仓库的原理
+
+用户 install 后向私有 npm
+发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
+npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+
+- npm —— https://registry.npmjs.org
+- cnpm —— http://r.cnpmjs.org
+- taobao —— https://registry.npm.taobao.org
+- nj —— https://registry.nodejitsu.com
+- rednpm —— http://registry.mirror.cqupt.edu.cn
+- npmMirror —— https://skimdb.npmjs.com/registry
+- edunpm —— http://registry.enpmjs.org
+
+windows server环境
+
+- windows server 2022
+- 宝塔面板
+
+配置nginx
+server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
+无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置
+https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
+时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
+
+造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ...
+这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+
+]]>
+
+ Develop
+ Javascript
+ Verdaccio
+
+
+ 私服npm
+ Verdaccio
+
+
Quasar中css总结
/posts/2020/3BD2JEJ.html
@@ -34698,118 +34759,6 @@ Webpack | Quasar Framework
Quasar
-
- verdaccio 私有化配置
- /posts/2022/38ND00E.html
- 添加用户
-添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/
-授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/
-参考
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- verdaccio
- 私服npm
-
-
-
- WindowsServer安装Verdaccio安装排坑日记
- /posts/2022/7MJX55.html
- 为了在js开发中更加便利的模块化,解决开发中频繁地更新npm包的问题,决定搭建一个轻量的npm包管理服务。比较了
-verdaccio,cnpm 后,最后选择了
-verdaccio。因为它够方便和快速,同时也够用。
-
-npm 私有仓库
-npm 私有仓库的好处
-
-安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node
-包的同时,将关联的依赖包缓存到 npm
-私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
-npm 私有仓库的原理
-
-用户 install 后向私有 npm
-发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是
-npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
-
-- npm —— https://registry.npmjs.org
-- cnpm —— http://r.cnpmjs.org
-- taobao —— https://registry.npm.taobao.org
-- nj —— https://registry.nodejitsu.com
-- rednpm —— http://registry.mirror.cqupt.edu.cn
-- npmMirror —— https://skimdb.npmjs.com/registry
-- edunpm —— http://registry.enpmjs.org
-
-windows server环境
-
-- windows server 2022
-- 宝塔面板
-
-配置nginx
-server {
listen 443 ssl http2;
server_name registry.xxx.com;
# ssl
ssl on;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; #SSL协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#SSL加密算法
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4873/;
proxy_read_timeout 600;
proxy_redirect off;
}
// 必须要有
location ~ ^/verdaccio/(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4873/$1;
proxy_redirect off;
}
}
-无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置
-https,然后通过域名(https://mydomain.com:4433)访问 verdaccio
-时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
-
-造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ...
-这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
-
-]]>
-
- Develop
- Javascript
- Verdaccio
-
-
- 私服npm
- Verdaccio
-
-
Vite 配置别名
/posts/2023/HR60E3.html
@@ -35083,6 +35032,23 @@ DST Root CA X3。
let's encrypt
+
+ 判断给定点是否在 CurveVector 上
+ /posts/2022/37DM65S.html
+ 判断给定点在否在 CurveVector 上可以使用下列方法:
+
+CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
+]]>
+
+ Bentley
+ Develop
+ GeometryNET
+ CurveVector
+
+
+ CurveVector
+
+
使用 win-acme 申请泛域名证书
/posts/2023/1ZNRJSW.html
@@ -35143,82 +35109,6 @@ validation
galens
-
- 判断给定点是否在 CurveVector 上
- /posts/2022/37DM65S.html
- 判断给定点在否在 CurveVector 上可以使用下列方法:
-
-CurveVector curve;
Dpoint3d testPnt;
InOutClassification location = curve.PointInOnOutXY(testPnt);
// InOutClassification 的定义如下
public enum InOutClassification
{
Unknown,
In,
Out,
On
}
-]]>
-
- Bentley
- Develop
- GeometryNET
- CurveVector
-
-
- CurveVector
-
-
-
- .NET 中对所有类添加 IgnoreExtraElements 属性
- /posts/2022/JME2G9.html
- 在将 mongodb 中的数据映射到类的时候,当 mongodb
-中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
-BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
-数据库对应的类的定义为:
-[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
-为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
-
-BsonIgnoreExtraElements 位于命名空间
-MongoDB.Bson.Serialization.Attributes 中
-
-这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
-有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
-当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
-// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
-
-ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
-中
-
-
-IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
-Collection
-中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段
-null
,则不存这个字段,简单来说就是省空间,假设一个类中有
-A,B
两个字段,其中 A
-字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
-{A:null, B:'B'}
。
-
-参考
-
-]]>
-
- Develop
- Database
- Mongodb
- DotNet
-
-
- .NET
- MongoDB
-
-
聚合
/posts/2021/MAACZD.html
@@ -35331,6 +35221,65 @@ Aggregation Operations
Aggregation
+
+ .NET 中对所有类添加 IgnoreExtraElements 属性
+ /posts/2022/JME2G9.html
+ 在将 mongodb 中的数据映射到类的时候,当 mongodb
+中的字段与定义的实体类的字段不一样时,会报错,此时只需要在类上添加
+BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[
{
"Name": "zhangsan",
"Age": 20,
"Gender": "男"
},
{
"Name": "xiaofang",
"Age": 18
}
]
+数据库对应的类的定义为:
+[BsonIgnoreExtraElements]
public calss Person
{
public string Name{get;set;}
public int Age{get;set;}
}
+为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
+
+BsonIgnoreExtraElements 位于命名空间
+MongoDB.Bson.Serialization.Attributes 中
+
+这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
+有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
+当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
+// mongodb 全局设置
var pack = new ConventionPack();
// 在反序列化时,忽略多出的字段
pack.Add(new IgnoreExtraElementsConvention(true));
pack.Add(new IgnoreIfNullConvention(true));
+
+ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions
+中
+
+
+IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户
+Collection
+中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段
+null
,则不存这个字段,简单来说就是省空间,假设一个类中有
+A,B
两个字段,其中 A
+字段为空,如果指定该设置,存为 {B:'B'}
,否则,存为
+{A:null, B:'B'}
。
+
+参考
+
+]]>
+
+ Develop
+ Database
+ Mongodb
+ DotNet
+
+
+ .NET
+ MongoDB
+
+
Query 和 Projection 操作符
/posts/2022/TZZNFQ.html
@@ -36483,207 +36432,6 @@ href="https://juejin.cn/post/7158362697803759624">Vue2.7正式发布,终于可
snipets
-
- vue3 如何在 setup 中调用异步方法
- /posts/2023/2KBPKH9.html
-
-
-async-await
-
-到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
-
-方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
-<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
-方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
-方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
-参考
-本文参考了以下文章,在此报以诚挚谢意!
-
-]]>
-
- Develop
- Javascript
- Vue
- Vue3.x
-
-
- Vue
- Vue3.x
- galens
-
-
-
- vue通信及组件之间传值
- /posts/2020/2H8Y4ZN.html
- 常用 vue 通信大概有这几种方式进行:
-
-- 组件间的父子之间的传值
-- 组件间的子父之间的传值
-- 非组件间的组件间的传值(简称:EventBus)
-- sessionStorage 缓存传值
-- 路由带参数跳转进行传值
-- vuex 进行传值
-
-
-组件间的父子之间的传值
-思路:父组件调用子组件 dom
-位置声明一个名称,然后在子组件接收这名称,便可直接调用。
-
-- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
-
-
-
-- 子组件:
-
-
-组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
-
-- 子组件:
-
-
-
-- 父组件:
-
-
-非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
-(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
-
-- 组件A:
-
-
-
-- 组件 B:
-
-
-效果展示如下:
-
-
-sessionStorage 缓存
-
-- 组件 A:
-
-
-
-- 组件 B:
-
-
-路由带参数跳转
-
-- 组件 A:有路由默认的页面
-
-
-
-- 组件 B:路由其他页面 children
-
-
-效果如下:
-
-
-vuex
-主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
-
-src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
-某文件触发事件
-methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
-展示页面
-<h1>{{this.$store.state.city}}</h1>
-致谢
-本文摘抄至:vue通信及组件之间传值
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
-
-
Vue3 语法摘要
/posts/2023/3CG1P9K.html
@@ -37619,170 +37367,48 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
- LearnVue 介绍
- /posts/2020/3W94T82.html
- 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
-入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
-本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>
-
- Develop
- Javascript
- Vue
- VueBasic
-
-
- vue
- LearnVue
-
-
-
- 16款优秀的Vue UI组件库推荐
- /posts/2020/28N842C.html
- Vue
-是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
-在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
-开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
-在选择Vue
-UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
-UI组件库。
+ vue3 如何在 setup 中调用异步方法
+ /posts/2023/2KBPKH9.html
+
+
+async-await
+
+到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍
-这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework
-https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
-响应式网站 PWA(Progressive Web App) 通过Apache
-Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
-Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
-App和Electron
-App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
-Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
-
-1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
-界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
-UI组件框架。iView生态也做得很好,还有开源了一个iView
-Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
-iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
-Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
-的桌面端组件库。Element是饿了么前端开源维护的Vue
-UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
-UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
-UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
-UI 采用 CSS3
-处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
-UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
-UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
-Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap
-V4组件和网格系统的实现,完成了广泛和自动化的WAI
-ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
-相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
-Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
-6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
-以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
-Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue
-实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
-Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
-Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
-React的组件,支持现代浏览器和 IE9 及以上(需要
-polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
-Design
-Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
-网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
-更加精简,实现了后台常用的组件。
-AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue
-组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
-是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
-API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
-个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
-地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
-优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
-商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
-Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js
-实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
-cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
-拥有40多个UI 组件,用于适应不同业务环境。Muse UI
-仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
-Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
-组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
-N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand
-Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
-Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
-Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/
-https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
-样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
-个组件,单元测试覆盖率超 98%,支持
-babel-plugin-import,完善的在线文档,详细的在线示例。
-we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE
-team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
-GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
-veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
-Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
-Semantic-UI 的 API 以及一组可定制的主题。
-Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
-在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js
-Material Component Framework — Vuetify.js
-
-Vuetify完全根据Material
-Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue
-ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue
-UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
+<Suspense>
<!-- 具有深层异步依赖的组件 -->
<Dashboard />
<!-- 在 #fallback 插槽中显示 “正在加载中” -->
<template #fallback>
Loading...
</template>
</Suspense>
# 若使用 script setup 语法时,可以直接在里面使用 await 等待异步返回
<script setup>
export default {
async setup() {
// 在 `setup` 内部使用 `await` 需要非常小心
// 因为大多数组合式 API 函数只会在
// 第一个 `await` 之前工作
const res = await fetch(...)
const posts = await res.json()
return {
posts
}
}
}
</script>
+方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script>
export default {
setup() {
const users = ref([]);
onBeforeMount(async () => {
const res = await axios.get("https://jsonplaceholder.typicode.com/users");
users.value = res.data;
console.log(res);
});
return {
users,
};
},
}
</script>
+方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template>
<div>{{ message }}</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const message = ref('');
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
message.value = data.message;
}
fetchData();
return {
message,
};
},
};
</script>
+参考
+本文参考了以下文章,在此报以诚挚谢意!
+
]]>
Develop
Javascript
Vue
- VueBasic
+ Vue3.x
- vue
+ Vue
+ Vue3.x
+ galens
@@ -38719,6 +38345,329 @@ href="https://github.com/vuejs/vue-router-next">vue-router)。
galens
+
+ 16款优秀的Vue UI组件库推荐
+ /posts/2020/28N842C.html
+ Vue
+是一个轻巧、高性能、可组件化的MVVM库,API简洁明了,上手快。从Vue推出以来,得到众多Web开发者的认可。
+在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正式使用。
+开发团队在使用Vue.js框架和UI组件库以后,开发效率大大提高,自己写的代码也少了,很多界面效果组件已经封装好了。
+在选择Vue
+UI组件库的过程中,通过GitHub上根据star数量、文档丰富程度、更新的频率以及维护等因素,也收集整理了一些优秀的Vue
+UI组件库。
+
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍
+这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework
+https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建:
+响应式网站 PWA(Progressive Web App) 通过Apache
+Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron)
+Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile
+App和Electron
+App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar
+Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
+
+1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC
+界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue
+UI组件框架。iView生态也做得很好,还有开源了一个iView
+Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。
+iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
+Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0
+的桌面端组件库。Element是饿了么前端开源维护的Vue
+UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue
+UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint
+UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint
+UI 采用 CSS3
+处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint
+UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint
+UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。
+Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap
+V4组件和网格系统的实现,完成了广泛和自动化的WAI
+ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3
+相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时
+Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS
+6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7
+以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
+Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue
+实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant
+Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design
+Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of
+React的组件,支持现代浏览器和 IE9 及以上(需要
+polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant
+Design
+Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC
+网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI
+更加精简,实现了后台常用的组件。
+AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue
+组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp
+是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的
+API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+
+个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList
+地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon
+优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku
+商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。
+Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js
+实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。
+cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI
+拥有40多个UI 组件,用于适应不同业务环境。Muse UI
+仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用
+Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件
+组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。
+N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand
+Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand
+Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。
+Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/
+https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css
+样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+
+个组件,单元测试覆盖率超 98%,支持
+babel-plugin-import,完善的在线文档,详细的在线示例。
+we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE
+team开发的Vue企业级UI组件库。目前文档还没有,只有demo。
+GitHub上说是正在进行的一项工作。那我们就耐心等待吧。
+veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。
+Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于
+Semantic-UI 的 API 以及一组可定制的主题。
+Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/
+在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js
+Material Component Framework — Vuetify.js
+
+Vuetify完全根据Material
+Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue
+ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue
+UI组件库推荐
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ vue通信及组件之间传值
+ /posts/2020/2H8Y4ZN.html
+ 常用 vue 通信大概有这几种方式进行:
+
+- 组件间的父子之间的传值
+- 组件间的子父之间的传值
+- 非组件间的组件间的传值(简称:EventBus)
+- sessionStorage 缓存传值
+- 路由带参数跳转进行传值
+- vuex 进行传值
+
+
+组件间的父子之间的传值
+思路:父组件调用子组件 dom
+位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+
+- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件):
+
+
+
+- 子组件:
+
+
+组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+
+- 子组件:
+
+
+
+- 父组件:
+
+
+非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器
+(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue'
let connect = new Vue() // 实例
export default connect
+
+- 组件A:
+
+
+
+- 组件 B:
+
+
+效果展示如下:
+
+
+sessionStorage 缓存
+
+- 组件 A:
+
+
+
+- 组件 B:
+
+
+路由带参数跳转
+
+- 组件 A:有路由默认的页面
+
+
+
+- 组件 B:路由其他页面 children
+
+
+效果如下:
+
+
+vuex
+主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+
+src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
city: "上海"
},
actions: {
handleCity(ctx, city) {
// console.log(ctx, city)
ctx.commit("handleCity", city)
}
},
mutations: {
handleCity(state, city) {
state.city = city
}
}
})
+某文件触发事件
+methods: {
handleCityClick(city) {
this.$store.dispatch("handleCity", "北京");
},
+展示页面
+<h1>{{this.$store.state.city}}</h1>
+致谢
+本文摘抄至:vue通信及组件之间传值
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+
+
+
+ LearnVue 介绍
+ /posts/2020/3W94T82.html
+ 计划系统的对 Vue.js 的源代码进行深入学习。以 learnVue
+入门,因为它当前的 star 数已经破 9k了, 肯定是干货满满的。
+本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>
+
+ Develop
+ Javascript
+ Vue
+ VueBasic
+
+
+ vue
+ LearnVue
+
+
LearnVue 响应式原理
/posts/2020/1P0TW1J.html
diff --git a/tags/Adguard/index.html b/tags/Adguard/index.html
index dcdb16825a..9c5e216573 100644
--- a/tags/Adguard/index.html
+++ b/tags/Adguard/index.html
@@ -260,13 +260,13 @@ AdGuard
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Aggregation/index.html b/tags/Aggregation/index.html
index 4e173b7c73..e8118e7859 100644
--- a/tags/Aggregation/index.html
+++ b/tags/Aggregation/index.html
@@ -303,13 +303,13 @@ Aggregation
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html
index 4910813e39..2212f06e47 100644
--- a/tags/Algorithm/index.html
+++ b/tags/Algorithm/index.html
@@ -283,13 +283,13 @@ Algorithm
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/All-in-one/index.html b/tags/All-in-one/index.html
index 837cc16906..6ddca289e6 100644
--- a/tags/All-in-one/index.html
+++ b/tags/All-in-one/index.html
@@ -260,13 +260,13 @@ All in one
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley-\344\272\214\346\254\241/index.html" "b/tags/Bentley-\344\272\214\346\254\241/index.html"
index 22a01869a4..267e8cacc0 100644
--- "a/tags/Bentley-\344\272\214\346\254\241/index.html"
+++ "b/tags/Bentley-\344\272\214\346\254\241/index.html"
@@ -260,13 +260,13 @@ Bentley 二次
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/index.html b/tags/Bentley/index.html
index 639029ce69..b44ac9f370 100644
--- a/tags/Bentley/index.html
+++ b/tags/Bentley/index.html
@@ -446,13 +446,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/2/index.html b/tags/Bentley/page/2/index.html
index 604f9cdb55..9fd6a134ad 100644
--- a/tags/Bentley/page/2/index.html
+++ b/tags/Bentley/page/2/index.html
@@ -443,13 +443,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Bentley/page/3/index.html b/tags/Bentley/page/3/index.html
index 9a54724695..db1f765eac 100644
--- a/tags/Bentley/page/3/index.html
+++ b/tags/Bentley/page/3/index.html
@@ -366,13 +366,13 @@ Bentley
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/BentleySDK/index.html b/tags/BentleySDK/index.html
index 8857ed6f94..54960a95c6 100644
--- a/tags/BentleySDK/index.html
+++ b/tags/BentleySDK/index.html
@@ -283,13 +283,13 @@ BentleySDK
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
index 3d80408cc3..3bab847f16 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/index.html"
@@ -443,13 +443,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
index 2c784ecfcd..ac05adc560 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/2/index.html"
@@ -391,8 +391,8 @@ Bentley二次开发
@@ -411,8 +411,8 @@ Bentley二次开发
@@ -449,13 +449,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html" "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
index f702f9aa0c..1c380740cc 100644
--- "a/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
+++ "b/tags/Bentley\344\272\214\346\254\241\345\274\200\345\217\221/page/3/index.html"
@@ -366,13 +366,13 @@ Bentley二次开发
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html" "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
index a350719e2c..a4b16c4f30 100644
--- "a/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
+++ "b/tags/Bentley\347\250\213\345\272\217\351\233\206\345\255\246\344\271\240/index.html"
@@ -260,13 +260,13 @@ Bentley程序集学习
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html" "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
index 24992bace2..cd0c53a35a 100644
--- "a/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
+++ "b/tags/Bentley\351\227\256\351\242\230\345\244\204\347\220\206/index.html"
@@ -386,13 +386,13 @@ Bentley问题处理
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/Blog/index.html b/tags/Blog/index.html
index e90b103957..e3abd893c8 100644
--- a/tags/Blog/index.html
+++ b/tags/Blog/index.html
@@ -283,13 +283,13 @@ Blog
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/tags/C/index.html b/tags/C/index.html
index f6b2f3942e..159a035ca6 100644
--- a/tags/C/index.html
+++ b/tags/C/index.html
@@ -22,7 +22,7 @@
-
+
@@ -31,14 +31,14 @@
-
+
-
+
-标签: c# | 星辰大海
+标签: C# | 星辰大海
@@ -204,29 +204,215 @@
- c#
+ C#
标签
- 2020
+ 2023
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 判断文件是否被占用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通用的深复制功能实现
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C# 优雅编程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编程风格指南
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2021
+
+
+
+
+
+
+
+
+
@@ -239,6 +425,9 @@ c#
+
@@ -260,13 +449,13 @@ c#
- 745k
+ 746k
- 11:17
+ 11:18
简介(Introduction)
-想象这个场景……用户正在填写您精心编写的表单,他们在应该输入电子邮件地址的地方输入了自己的名字。您需要检测这个问题,并以清晰的方式显示问题。
+概述(Overview)
+BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
-
+
@@ -1228,7 +1228,7 @@
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support
+ WPF MVVM Stylet使用文档(中文)18-Logging
@@ -1273,14 +1273,14 @@
本文字数:
- 7.8k
+ 1.2k
阅读时长 ≈
- 7 分钟
+ 1 分钟
@@ -1291,17 +1291,14 @@
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
- WPF MVVM Stylet使用文档(中文)17-Design Mode Support + WPF MVVM Stylet使用文档(中文)18-Logging
本文字数: - 7.8k + 1.2k 阅读时长 ≈ - 7 分钟 + 1 分钟
- 简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
-Expression Blend 中时,显示的是 XAML
-的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
-ViewModel 的一些虚拟值。
-Stylet
-对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
-XAML 特性来增强设计时体验的说明。
+ 简介
+有时候,查看 Stylet
+在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet
+可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@ 简介(Introduction)
-
+
@@ -1350,7 +1347,7 @@ 简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging
+ WPF MVVM Stylet使用文档(中文)17-Design Mode Support
@@ -1395,14 +1392,14 @@
本文字数:
- 1.2k
+ 7.8k
阅读时长 ≈
- 1 分钟
+ 7 分钟
@@ -1413,14 +1410,17 @@
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
@@ -445,13 +445,13 @@ 服务和实现(Services
- 745k
+ 746k
- 11:17
+ 11:18
简介(Introduction)
-“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或 -Expression Blend 中时,显示的是 XAML -的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自 -ViewModel 的一些虚拟值。
-Stylet -对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的 -XAML 特性来增强设计时体验的说明。
+简介
+有时候,查看 Stylet +在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet +可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
@@ -1332,7 +1329,7 @@简介(Introduction)
简介(Introduction)
- WPF MVVM Stylet使用文档(中文)18-Logging + WPF MVVM Stylet使用文档(中文)17-Design Mode Support
本文字数: - 1.2k + 7.8k 阅读时长 ≈ - 1 分钟 + 7 分钟
- 简介
-有时候,查看 Stylet
-在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet
-可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ 简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或
+Expression Blend 中时,显示的是 XAML
+的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自
+ViewModel 的一些虚拟值。
+Stylet
+对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的
+XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@ 简介
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/35/index.html b/page/35/index.html
index 9f2edbf405..fce5945f9d 100644
--- a/page/35/index.html
+++ b/page/35/index.html
@@ -1392,13 +1392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/36/index.html b/page/36/index.html
index 8622d45863..f746a5e23b 100644
--- a/page/36/index.html
+++ b/page/36/index.html
@@ -1368,13 +1368,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/37/index.html b/page/37/index.html
index 3dd9ff8ab6..846777d2d0 100644
--- a/page/37/index.html
+++ b/page/37/index.html
@@ -317,7 +317,7 @@
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/159N1WD.html b/posts/2019/159N1WD.html
index 7f8f6b28eb..2c5f42fe42 100644
--- a/posts/2019/159N1WD.html
+++ b/posts/2019/159N1WD.html
@@ -435,13 +435,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1BADZMH.html b/posts/2019/1BADZMH.html
index 0ce73641ec..2da237b9f7 100644
--- a/posts/2019/1BADZMH.html
+++ b/posts/2019/1BADZMH.html
@@ -434,13 +434,13 @@ 最佳实践
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/1TFVRP.html b/posts/2019/1TFVRP.html
index 21f1c33196..f2b7911437 100644
--- a/posts/2019/1TFVRP.html
+++ b/posts/2019/1TFVRP.html
@@ -386,13 +386,13 @@ 致谢
@@ -426,13 +426,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/24BB768.html b/posts/2019/24BB768.html
index 21a77b5500..eb0d7774ef 100644
--- a/posts/2019/24BB768.html
+++ b/posts/2019/24BB768.html
@@ -420,13 +420,13 @@ 2021/08/13 博客从 jekyll
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/25CC488.html b/posts/2019/25CC488.html
index ef7c70c543..103f6a7efa 100644
--- a/posts/2019/25CC488.html
+++ b/posts/2019/25CC488.html
@@ -403,13 +403,13 @@ 多行注释
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/2YZ5NBS.html b/posts/2019/2YZ5NBS.html
index d26a3e280f..af49d8d3d3 100644
--- a/posts/2019/2YZ5NBS.html
+++ b/posts/2019/2YZ5NBS.html
@@ -446,13 +446,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/33DD0CG.html b/posts/2019/33DD0CG.html
index 8bb8952c97..b509df6c68 100644
--- a/posts/2019/33DD0CG.html
+++ b/posts/2019/33DD0CG.html
@@ -404,13 +404,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3MYBQJA.html b/posts/2019/3MYBQJA.html
index 53ac200f6b..13e331c082 100644
--- a/posts/2019/3MYBQJA.html
+++ b/posts/2019/3MYBQJA.html
@@ -454,13 +454,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3PCKARV.html b/posts/2019/3PCKARV.html
index b6d2038e25..5081cd5508 100644
--- a/posts/2019/3PCKARV.html
+++ b/posts/2019/3PCKARV.html
@@ -569,13 +569,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3QMZ3K8.html b/posts/2019/3QMZ3K8.html
index 5de0f6afb5..747f4246be 100644
--- a/posts/2019/3QMZ3K8.html
+++ b/posts/2019/3QMZ3K8.html
@@ -1335,13 +1335,13 @@
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/3Y73VWH.html b/posts/2019/3Y73VWH.html
index 8d19a6108e..2a54d1d673 100644
--- a/posts/2019/3Y73VWH.html
+++ b/posts/2019/3Y73VWH.html
@@ -668,13 +668,13 @@ 16. 待办事宜 Todo 列表
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/5JY0NS.html b/posts/2019/5JY0NS.html
index 9390bf6c0e..d96e8960cd 100644
--- a/posts/2019/5JY0NS.html
+++ b/posts/2019/5JY0NS.html
@@ -367,8 +367,8 @@ 致谢
@@ -407,13 +407,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/7W71XB.html b/posts/2019/7W71XB.html
index 13a027262c..9235ea02ea 100644
--- a/posts/2019/7W71XB.html
+++ b/posts/2019/7W71XB.html
@@ -513,13 +513,13 @@ 参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/ARMN8G.html b/posts/2019/ARMN8G.html
index 04b572c411..a7ae5a1798 100644
--- a/posts/2019/ARMN8G.html
+++ b/posts/2019/ARMN8G.html
@@ -478,13 +478,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/B17J0X.html b/posts/2019/B17J0X.html
index ae3ee9bd54..6aa27a9110 100644
--- a/posts/2019/B17J0X.html
+++ b/posts/2019/B17J0X.html
@@ -806,13 +806,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1005Z29.html b/posts/2020/1005Z29.html
index cc8fced62e..1c25608bde 100644
--- a/posts/2020/1005Z29.html
+++ b/posts/2020/1005Z29.html
@@ -505,13 +505,13 @@ 定制音效(Custom Sounds)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/10KD94C.html b/posts/2020/10KD94C.html
index 5be8dfb5c5..75123d8b9e 100644
--- a/posts/2020/10KD94C.html
+++ b/posts/2020/10KD94C.html
@@ -424,13 +424,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/14RZ2W.html b/posts/2020/14RZ2W.html
index 6fd0367213..f6f9400d45 100644
--- a/posts/2020/14RZ2W.html
+++ b/posts/2020/14RZ2W.html
@@ -430,13 +430,13 @@ 制作文件 mkefile
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/155MT1J.html b/posts/2020/155MT1J.html
index 24270468e0..8a98438433 100644
--- a/posts/2020/155MT1J.html
+++ b/posts/2020/155MT1J.html
@@ -616,13 +616,13 @@ 使用自己的
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15F3BA2.html b/posts/2020/15F3BA2.html
index 7e90120612..de1a0eef32 100644
--- a/posts/2020/15F3BA2.html
+++ b/posts/2020/15F3BA2.html
@@ -480,8 +480,8 @@ 致谢
@@ -515,13 +515,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/15QDG6.html b/posts/2020/15QDG6.html
index a89f373897..b33b5946ee 100644
--- a/posts/2020/15QDG6.html
+++ b/posts/2020/15QDG6.html
@@ -362,13 +362,13 @@
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/16SCXPH.html b/posts/2020/16SCXPH.html
index 154bf33faa..4f68697139 100644
--- a/posts/2020/16SCXPH.html
+++ b/posts/2020/16SCXPH.html
@@ -413,13 +413,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/189RMV7.html b/posts/2020/189RMV7.html
index 261877e1bb..87ecd2b590 100644
--- a/posts/2020/189RMV7.html
+++ b/posts/2020/189RMV7.html
@@ -453,13 +453,13 @@ 参考文章
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/18MAEYX.html b/posts/2020/18MAEYX.html
index 4cb9a5a632..23491a1a17 100644
--- a/posts/2020/18MAEYX.html
+++ b/posts/2020/18MAEYX.html
@@ -540,13 +540,13 @@ 磁盘空间使用分析
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1C38P4H.html b/posts/2020/1C38P4H.html
index 1dda09833b..d8e4282e1e 100644
--- a/posts/2020/1C38P4H.html
+++ b/posts/2020/1C38P4H.html
@@ -369,8 +369,8 @@ 致谢
@@ -409,13 +409,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1DD84QT.html b/posts/2020/1DD84QT.html
index a70a906da5..8ae73d7bb5 100644
--- a/posts/2020/1DD84QT.html
+++ b/posts/2020/1DD84QT.html
@@ -410,13 +410,13 @@ 声明
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1G6WK1H.html b/posts/2020/1G6WK1H.html
index 8fb56db687..12c630062f 100644
--- a/posts/2020/1G6WK1H.html
+++ b/posts/2020/1G6WK1H.html
@@ -442,13 +442,13 @@ 更多
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1H4GT7T.html b/posts/2020/1H4GT7T.html
index 4d69284e6f..aa64a0e467 100644
--- a/posts/2020/1H4GT7T.html
+++ b/posts/2020/1H4GT7T.html
@@ -571,8 +571,8 @@ WindowConductor
-
- WPF MVVM Stylet使用文档(中文)12-BindableCollection
+
+ WPF MVVM Stylet使用文档(中文)13-Validation Use ValidatingModelBase
@@ -611,13 +611,13 @@ WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1HXBM8H.html b/posts/2020/1HXBM8H.html
index a618adf510..7f3d810056 100644
--- a/posts/2020/1HXBM8H.html
+++ b/posts/2020/1HXBM8H.html
@@ -581,13 +581,13 @@ 理解和使用 IModelValidator
@@ -621,13 +621,13 @@ 理解和使用 IModelValidator
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P0TW1J.html b/posts/2020/1P0TW1J.html
index 80346f26a2..9ca6721c85 100644
--- a/posts/2020/1P0TW1J.html
+++ b/posts/2020/1P0TW1J.html
@@ -495,13 +495,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1P955T2.html b/posts/2020/1P955T2.html
index a3ceed6432..3daf9281ea 100644
--- a/posts/2020/1P955T2.html
+++ b/posts/2020/1P955T2.html
@@ -447,13 +447,13 @@ 怎么知道要设置哪个属
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PNK91Q.html b/posts/2020/1PNK91Q.html
index e42077dd30..8a77378680 100644
--- a/posts/2020/1PNK91Q.html
+++ b/posts/2020/1PNK91Q.html
@@ -449,8 +449,8 @@ 致谢
@@ -484,13 +484,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1PP7XJ3.html b/posts/2020/1PP7XJ3.html
index a5306ebca3..743ef46f36 100644
--- a/posts/2020/1PP7XJ3.html
+++ b/posts/2020/1PP7XJ3.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1R7P97F.html b/posts/2020/1R7P97F.html
index 2aa66c85a7..67ab6ca8db 100644
--- a/posts/2020/1R7P97F.html
+++ b/posts/2020/1R7P97F.html
@@ -414,13 +414,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1S5QGSS.html b/posts/2020/1S5QGSS.html
index 26f16ec13f..c228c2b1ab 100644
--- a/posts/2020/1S5QGSS.html
+++ b/posts/2020/1S5QGSS.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SH18GY.html b/posts/2020/1SH18GY.html
index ac45f2fbbe..19b3d72206 100644
--- a/posts/2020/1SH18GY.html
+++ b/posts/2020/1SH18GY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1SHECQH.html b/posts/2020/1SHECQH.html
index 2ba9957199..bdb0336b28 100644
--- a/posts/2020/1SHECQH.html
+++ b/posts/2020/1SHECQH.html
@@ -433,8 +433,8 @@ INotifyPropertyChanged.Bind
@@ -473,13 +473,13 @@ INotifyPropertyChanged.Bind
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1T9E994.html b/posts/2020/1T9E994.html
index 1760a2de80..a5355a572f 100644
--- a/posts/2020/1T9E994.html
+++ b/posts/2020/1T9E994.html
@@ -422,13 +422,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1TF781D.html b/posts/2020/1TF781D.html
index 8e5be36de7..efc2a38eb1 100644
--- a/posts/2020/1TF781D.html
+++ b/posts/2020/1TF781D.html
@@ -411,13 +411,13 @@ 疑问解答
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1VM70C3.html b/posts/2020/1VM70C3.html
index faccca5b07..0565d1068e 100644
--- a/posts/2020/1VM70C3.html
+++ b/posts/2020/1VM70C3.html
@@ -499,13 +499,13 @@ s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1W2Z51R.html b/posts/2020/1W2Z51R.html
index aa4b9687b8..2ca8b96788 100644
--- a/posts/2020/1W2Z51R.html
+++ b/posts/2020/1W2Z51R.html
@@ -407,13 +407,13 @@ 解决办法
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/1YXZ99D.html b/posts/2020/1YXZ99D.html
index 7c87c3befa..7e939080ce 100644
--- a/posts/2020/1YXZ99D.html
+++ b/posts/2020/1YXZ99D.html
@@ -394,13 +394,13 @@ 线程安全(Thead Safety)
@@ -434,13 +434,13 @@ 线程安全(Thead Safety)
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/25EQ87B.html b/posts/2020/25EQ87B.html
index 1552d7684c..788f2bf202 100644
--- a/posts/2020/25EQ87B.html
+++ b/posts/2020/25EQ87B.html
@@ -1143,13 +1143,13 @@ 致谢
@@ -1183,13 +1183,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/268PCBJ.html b/posts/2020/268PCBJ.html
index 7f3f56c7ba..d18d2c0a29 100644
--- a/posts/2020/268PCBJ.html
+++ b/posts/2020/268PCBJ.html
@@ -434,13 +434,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/26DVEVG.html b/posts/2020/26DVEVG.html
index 661b718db5..771de3c62e 100644
--- a/posts/2020/26DVEVG.html
+++ b/posts/2020/26DVEVG.html
@@ -403,13 +403,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/28N842C.html b/posts/2020/28N842C.html
index b18037a2cf..082554a02f 100644
--- a/posts/2020/28N842C.html
+++ b/posts/2020/28N842C.html
@@ -487,13 +487,13 @@ 致谢
@@ -527,13 +527,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2APET5T.html b/posts/2020/2APET5T.html
index 2ad8fa0d2b..2857dc7099 100644
--- a/posts/2020/2APET5T.html
+++ b/posts/2020/2APET5T.html
@@ -510,13 +510,13 @@ 程序加载器(The
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2B9D6M8.html b/posts/2020/2B9D6M8.html
index 13e38a7caf..69022edb0d 100644
--- a/posts/2020/2B9D6M8.html
+++ b/posts/2020/2B9D6M8.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EA0GRR.html b/posts/2020/2EA0GRR.html
index 4fb76183fb..7bf617ddf9 100644
--- a/posts/2020/2EA0GRR.html
+++ b/posts/2020/2EA0GRR.html
@@ -407,13 +407,13 @@ 修改密码
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2EFJQ9T.html b/posts/2020/2EFJQ9T.html
index 194a4dfb10..4ae6590544 100644
--- a/posts/2020/2EFJQ9T.html
+++ b/posts/2020/2EFJQ9T.html
@@ -429,13 +429,13 @@ 特殊情况
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2GK4675.html b/posts/2020/2GK4675.html
index 9215b9b8c0..aadd584710 100644
--- a/posts/2020/2GK4675.html
+++ b/posts/2020/2GK4675.html
@@ -391,8 +391,8 @@ 参考
@@ -431,13 +431,13 @@ 参考
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2H8Y4ZN.html b/posts/2020/2H8Y4ZN.html
index 8409d87c78..12af33b59b 100644
--- a/posts/2020/2H8Y4ZN.html
+++ b/posts/2020/2H8Y4ZN.html
@@ -501,13 +501,13 @@ 致谢
@@ -541,13 +541,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2HMJJW9.html b/posts/2020/2HMJJW9.html
index 64f57f05b4..1eb8f430fa 100644
--- a/posts/2020/2HMJJW9.html
+++ b/posts/2020/2HMJJW9.html
@@ -4790,13 +4790,13 @@ Geographic Coordinate
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2JN1KQ1.html b/posts/2020/2JN1KQ1.html
index 2f736ad9da..736c86a8df 100644
--- a/posts/2020/2JN1KQ1.html
+++ b/posts/2020/2JN1KQ1.html
@@ -569,13 +569,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2KKWR4A.html b/posts/2020/2KKWR4A.html
index e7f70fa112..fa799c2efa 100644
--- a/posts/2020/2KKWR4A.html
+++ b/posts/2020/2KKWR4A.html
@@ -419,13 +419,13 @@ 字符串转时间
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2PX2VEN.html b/posts/2020/2PX2VEN.html
index ad696de352..d83d39d4b9 100644
--- a/posts/2020/2PX2VEN.html
+++ b/posts/2020/2PX2VEN.html
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2QMK677.html b/posts/2020/2QMK677.html
index dcfa31249c..b6f7006cdf 100644
--- a/posts/2020/2QMK677.html
+++ b/posts/2020/2QMK677.html
@@ -690,13 +690,13 @@ 👍致谢名单
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RDEGH9.html b/posts/2020/2RDEGH9.html
index 4ad5b291b5..7ff0556c60 100644
--- a/posts/2020/2RDEGH9.html
+++ b/posts/2020/2RDEGH9.html
@@ -520,13 +520,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/2RT0R7Q.html b/posts/2020/2RT0R7Q.html
index 6363d1e72b..272816f83b 100644
--- a/posts/2020/2RT0R7Q.html
+++ b/posts/2020/2RT0R7Q.html
@@ -359,8 +359,8 @@
@@ -394,13 +394,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/317EM2J.html b/posts/2020/317EM2J.html
index f4bd757a8e..497875fc7a 100644
--- a/posts/2020/317EM2J.html
+++ b/posts/2020/317EM2J.html
@@ -511,13 +511,13 @@ Resource And Thanks
@@ -551,13 +551,13 @@ Resource And Thanks
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/31H546G.html b/posts/2020/31H546G.html
index 9ef32cfcc2..53a75548e8 100644
--- a/posts/2020/31H546G.html
+++ b/posts/2020/31H546G.html
@@ -406,13 +406,13 @@ 致谢
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/32CSTB6.html b/posts/2020/32CSTB6.html
index c6771afce7..11e197045f 100644
--- a/posts/2020/32CSTB6.html
+++ b/posts/2020/32CSTB6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/353AZ4N.html b/posts/2020/353AZ4N.html
index b149a7369b..a22acdb1ee 100644
--- a/posts/2020/353AZ4N.html
+++ b/posts/2020/353AZ4N.html
@@ -523,13 +523,13 @@ 后记
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35EQCZA.html b/posts/2020/35EQCZA.html
index 63cf6aea87..eb405db7c7 100644
--- a/posts/2020/35EQCZA.html
+++ b/posts/2020/35EQCZA.html
@@ -452,13 +452,13 @@ 更多参考资料
@@ -492,13 +492,13 @@ 更多参考资料
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/35KNZY8.html b/posts/2020/35KNZY8.html
index 4e403834f0..2c459ce0ff 100644
--- a/posts/2020/35KNZY8.html
+++ b/posts/2020/35KNZY8.html
@@ -506,13 +506,13 @@ MongoDB 数据库默认角色
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/37N8G1C.html b/posts/2020/37N8G1C.html
index 8dca1fa855..34f5822bbe 100644
--- a/posts/2020/37N8G1C.html
+++ b/posts/2020/37N8G1C.html
@@ -353,13 +353,13 @@
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3905HA6.html b/posts/2020/3905HA6.html
index a786a61cff..7f940755e1 100644
--- a/posts/2020/3905HA6.html
+++ b/posts/2020/3905HA6.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/39AEVSS.html b/posts/2020/39AEVSS.html
index 5d32199e13..f95e53d61a 100644
--- a/posts/2020/39AEVSS.html
+++ b/posts/2020/39AEVSS.html
@@ -439,8 +439,8 @@ 创建自己
@@ -474,13 +474,13 @@ 创建自己
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3BD2JEJ.html b/posts/2020/3BD2JEJ.html
index 902a50775b..56498e7fc9 100644
--- a/posts/2020/3BD2JEJ.html
+++ b/posts/2020/3BD2JEJ.html
@@ -870,13 +870,13 @@ 顺序
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3C0QABE.html b/posts/2020/3C0QABE.html
index 0b5d7ca798..3e17cbb2ea 100644
--- a/posts/2020/3C0QABE.html
+++ b/posts/2020/3C0QABE.html
@@ -696,13 +696,13 @@ 其它行为(Additional
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CGWMS0.html b/posts/2020/3CGWMS0.html
index d008ad66fb..91ff57f755 100644
--- a/posts/2020/3CGWMS0.html
+++ b/posts/2020/3CGWMS0.html
@@ -369,8 +369,8 @@ 工具类
@@ -404,13 +404,13 @@ 工具类
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2020/3CQNFDK.html b/posts/2020/3CQNFDK.html
index d14ad17e2f..352c3f12b4 100644
--- a/posts/2020/3CQNFDK.html
+++ b/posts/2020/3CQNFDK.html
@@ -410,8 +410,8 @@ 服务和实现(Services
简介
-有时候,查看 Stylet -在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet -可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+简介(Introduction)
+“设计模式”或“设计时”指的是项目加载到 Visual Studio XAML 设计器或 +Expression Blend 中时,显示的是 XAML +的呈现版本。大多数情况下,设计人员不会尝试评和估任何绑定,也不会为它们提供任何智能感知。然而,通过一些配置,您可以获得可爱的智能感知,并在视图中显示来自 +ViewModel 的一些虚拟值。
+Stylet +对设计模式有一些基本的支持。本文记录了它,并提供了如何使用它以及如何利用现有的 +XAML 特性来增强设计时体验的说明。
@@ -1467,13 +1467,13 @@简介
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
-
+
@@ -335,7 +335,7 @@
- 在 Winform、WPF 中使用 Font Awesome
+ Color 颜色对照表
@@ -376,14 +376,14 @@
本文字数:
- 865
+ 3.5k
阅读时长 ≈
- 1 分钟
+ 3 分钟
@@ -394,12 +394,10 @@
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
- 在 Winform、WPF 中使用 Font Awesome + Color 颜色对照表
本文字数: - 865 + 3.5k 阅读时长 ≈ - 1 分钟 + 3 分钟
- 序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
-的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ Color 颜色对照表。
@@ -430,7 +428,7 @@ 序
-
+
@@ -448,7 +446,7 @@ 序
- Color 颜色对照表
+ 在 Winform、WPF 中使用 Font Awesome
@@ -489,14 +487,14 @@
本文字数:
- 3.5k
+ 865
阅读时长 ≈
- 3 分钟
+ 1 分钟
@@ -507,10 +505,12 @@
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
@@ -409,13 +409,13 @@ DgnViewTool
- 745k
+ 746k
- 11:17
+ 11:18
序
-今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome -的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+Color 颜色对照表。
@@ -430,7 +428,7 @@序
序
- Color 颜色对照表 + 在 Winform、WPF 中使用 Font Awesome
本文字数: - 3.5k + 865 阅读时长 ≈ - 3 分钟 + 1 分钟
- Color 颜色对照表。
+ 序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome
+的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/38/index.html b/page/38/index.html
index 16aa8548c9..4c89316e3d 100644
--- a/page/38/index.html
+++ b/page/38/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/39/index.html b/page/39/index.html
index a39a75be65..fc28b5753f 100644
--- a/page/39/index.html
+++ b/page/39/index.html
@@ -1362,13 +1362,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/4/index.html b/page/4/index.html
index 0fd985e23e..9b4d6e5431 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1314,13 +1314,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/40/index.html b/page/40/index.html
index 83a0c0099b..e3f31c5fee 100644
--- a/page/40/index.html
+++ b/page/40/index.html
@@ -1338,13 +1338,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/41/index.html b/page/41/index.html
index 72c4bdc4bf..05cc0a0a15 100644
--- a/page/41/index.html
+++ b/page/41/index.html
@@ -891,13 +891,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/5/index.html b/page/5/index.html
index 338c657104..030ecaffa9 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1300,13 +1300,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/6/index.html b/page/6/index.html
index 558a226893..7190c568a0 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1299,13 +1299,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/7/index.html b/page/7/index.html
index ebc2722d5d..f20fbac433 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -1354,13 +1354,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/8/index.html b/page/8/index.html
index de180c5e91..55294b5a3f 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -1341,13 +1341,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/page/9/index.html b/page/9/index.html
index 7a19d75bf5..507116247d 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -1345,13 +1345,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2013/1F4T3C2.html b/posts/2013/1F4T3C2.html
index 70c3030c72..e6676abfa8 100644
--- a/posts/2013/1F4T3C2.html
+++ b/posts/2013/1F4T3C2.html
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2015/R4FXSA.html b/posts/2015/R4FXSA.html
index d8adaacd48..c930b93457 100644
--- a/posts/2015/R4FXSA.html
+++ b/posts/2015/R4FXSA.html
@@ -418,13 +418,13 @@ 总结
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/201Z6G7.html b/posts/2016/201Z6G7.html
index 2508ed8413..911d69e134 100644
--- a/posts/2016/201Z6G7.html
+++ b/posts/2016/201Z6G7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2H6KWG8.html b/posts/2016/2H6KWG8.html
index 7559f98d2a..6416f67434 100644
--- a/posts/2016/2H6KWG8.html
+++ b/posts/2016/2H6KWG8.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/2YSA5Z7.html b/posts/2016/2YSA5Z7.html
index 00a378b4ff..87eea7da52 100644
--- a/posts/2016/2YSA5Z7.html
+++ b/posts/2016/2YSA5Z7.html
@@ -405,13 +405,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3FADRYM.html b/posts/2016/3FADRYM.html
index f892103367..22ddf94f6d 100644
--- a/posts/2016/3FADRYM.html
+++ b/posts/2016/3FADRYM.html
@@ -419,13 +419,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2016/3VN0XNQ.html b/posts/2016/3VN0XNQ.html
index e34ad918a9..94bf66d60e 100644
--- a/posts/2016/3VN0XNQ.html
+++ b/posts/2016/3VN0XNQ.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/05KG8X.html b/posts/2017/05KG8X.html
index cbc4fa0611..cf29aa14e4 100644
--- a/posts/2017/05KG8X.html
+++ b/posts/2017/05KG8X.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/1AJP2Y0.html b/posts/2017/1AJP2Y0.html
index 1a6e8082b3..3bec73ef99 100644
--- a/posts/2017/1AJP2Y0.html
+++ b/posts/2017/1AJP2Y0.html
@@ -390,13 +390,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/218KCWH.html b/posts/2017/218KCWH.html
index 0f507feb38..4695fe6252 100644
--- a/posts/2017/218KCWH.html
+++ b/posts/2017/218KCWH.html
@@ -395,13 +395,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/2P24YP8.html b/posts/2017/2P24YP8.html
index 19f08b0545..1cf624f156 100644
--- a/posts/2017/2P24YP8.html
+++ b/posts/2017/2P24YP8.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/331FR19.html b/posts/2017/331FR19.html
index d603667c6e..f90d220789 100644
--- a/posts/2017/331FR19.html
+++ b/posts/2017/331FR19.html
@@ -404,13 +404,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3B8ZFDY.html b/posts/2017/3B8ZFDY.html
index 46f41d420f..a33d6b6450 100644
--- a/posts/2017/3B8ZFDY.html
+++ b/posts/2017/3B8ZFDY.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3C2G7GH.html b/posts/2017/3C2G7GH.html
index 31868c27f5..ec254b6ff7 100644
--- a/posts/2017/3C2G7GH.html
+++ b/posts/2017/3C2G7GH.html
@@ -401,13 +401,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3DKZM8Z.html b/posts/2017/3DKZM8Z.html
index 4e40ed3a95..4350dededd 100644
--- a/posts/2017/3DKZM8Z.html
+++ b/posts/2017/3DKZM8Z.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3T2T8EN.html b/posts/2017/3T2T8EN.html
index 099c79f628..4aadac5ce3 100644
--- a/posts/2017/3T2T8EN.html
+++ b/posts/2017/3T2T8EN.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/3Y49VDP.html b/posts/2017/3Y49VDP.html
index b9fdec4561..04bb95438a 100644
--- a/posts/2017/3Y49VDP.html
+++ b/posts/2017/3Y49VDP.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BPMA7E.html b/posts/2017/BPMA7E.html
index 44611eeae4..11bc7ff64c 100644
--- a/posts/2017/BPMA7E.html
+++ b/posts/2017/BPMA7E.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/BSTRJW.html b/posts/2017/BSTRJW.html
index ef03c4e1c8..966156997f 100644
--- a/posts/2017/BSTRJW.html
+++ b/posts/2017/BSTRJW.html
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2017/HPBWTD.html b/posts/2017/HPBWTD.html
index afd63953ea..b2986c2869 100644
--- a/posts/2017/HPBWTD.html
+++ b/posts/2017/HPBWTD.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1945B98.html b/posts/2018/1945B98.html
index 9fca7813b8..5823474303 100644
--- a/posts/2018/1945B98.html
+++ b/posts/2018/1945B98.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/1GY6GF5.html b/posts/2018/1GY6GF5.html
index 5e2896e38c..0373dbe069 100644
--- a/posts/2018/1GY6GF5.html
+++ b/posts/2018/1GY6GF5.html
@@ -391,13 +391,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/202BKMX.html b/posts/2018/202BKMX.html
index cb4a4aae29..9db8a62947 100644
--- a/posts/2018/202BKMX.html
+++ b/posts/2018/202BKMX.html
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/268TABM.html b/posts/2018/268TABM.html
index 2a45493cb9..a79792d88e 100644
--- a/posts/2018/268TABM.html
+++ b/posts/2018/268TABM.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/27Y513A.html b/posts/2018/27Y513A.html
index b8ad4abc5f..6f3cfe13a3 100644
--- a/posts/2018/27Y513A.html
+++ b/posts/2018/27Y513A.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/29ZPVW.html b/posts/2018/29ZPVW.html
index c15e8ac2d0..9310a56be4 100644
--- a/posts/2018/29ZPVW.html
+++ b/posts/2018/29ZPVW.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2E319BV.html b/posts/2018/2E319BV.html
index 396d69349a..082658074c 100644
--- a/posts/2018/2E319BV.html
+++ b/posts/2018/2E319BV.html
@@ -400,13 +400,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2HSM119.html b/posts/2018/2HSM119.html
index 9e9943f32a..319b28fb06 100644
--- a/posts/2018/2HSM119.html
+++ b/posts/2018/2HSM119.html
@@ -406,13 +406,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/2TJN1ZF.html b/posts/2018/2TJN1ZF.html
index a34926e1d6..c8e2bf5f6b 100644
--- a/posts/2018/2TJN1ZF.html
+++ b/posts/2018/2TJN1ZF.html
@@ -410,13 +410,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/36GBYZE.html b/posts/2018/36GBYZE.html
index 68c2f9affc..443177ad19 100644
--- a/posts/2018/36GBYZE.html
+++ b/posts/2018/36GBYZE.html
@@ -411,13 +411,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/38WXA9N.html b/posts/2018/38WXA9N.html
index e459580ab9..0a7b88ebee 100644
--- a/posts/2018/38WXA9N.html
+++ b/posts/2018/38WXA9N.html
@@ -399,13 +399,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/39BM7K7.html b/posts/2018/39BM7K7.html
index 9cf9d5b965..1a0dd51be7 100644
--- a/posts/2018/39BM7K7.html
+++ b/posts/2018/39BM7K7.html
@@ -407,13 +407,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/DRBTMR.html b/posts/2018/DRBTMR.html
index 0a3146189d..89de3ec687 100644
--- a/posts/2018/DRBTMR.html
+++ b/posts/2018/DRBTMR.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/JW1J07.html b/posts/2018/JW1J07.html
index 885e65046e..fb5f330a13 100644
--- a/posts/2018/JW1J07.html
+++ b/posts/2018/JW1J07.html
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2018/WHDN7Q.html b/posts/2018/WHDN7Q.html
index 24b0789186..4e798f635c 100644
--- a/posts/2018/WHDN7Q.html
+++ b/posts/2018/WHDN7Q.html
@@ -397,13 +397,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
由 Hexo & NexT.Gemini 强力驱动
diff --git a/posts/2019/14CGG7V.html b/posts/2019/14CGG7V.html
index 702e138c2d..56ee93f1f2 100644
--- a/posts/2019/14CGG7V.html
+++ b/posts/2019/14CGG7V.html
@@ -374,8 +374,8 @@ DgnViewTool
Color 颜色对照表。
+序
+今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome +的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
@@ -1351,13 +1351,13 @@- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
总结
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
DgnViewTool
声明
- 745k + 746k - 11:17 + 11:18最佳实践
- 745k + 746k - 11:17 + 11:18致谢
@@ -426,13 +426,13 @@致谢
- 745k + 746k - 11:17 + 11:182021/08/13 博客从 jekyll - 745k + 746k - 11:17 + 11:18
多行注释
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18声明
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18
@@ -1375,13 +1375,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
16. 待办事宜 Todo 列表
- 745k + 746k - 11:17 + 11:18致谢
致谢
- 745k + 746k - 11:17 + 11:18参考资料
- 745k + 746k - 11:17 + 11:18声明
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18定制音效(Custom Sounds)
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
制作文件 mkefile
- 745k + 746k - 11:17 + 11:18使用自己的 - 745k + 746k - 11:17 + 11:18
致谢
致谢
- 745k + 746k - 11:17 + 11:18
@@ -402,13 +402,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
致谢
- 745k + 746k - 11:17 + 11:18参考文章
- 745k + 746k - 11:17 + 11:18磁盘空间使用分析
- 745k + 746k - 11:17 + 11:18致谢
致谢
- 745k + 746k - 11:17 + 11:18声明
- 745k + 746k - 11:17 + 11:18更多
- 745k + 746k - 11:17 + 11:18WindowConductor
WindowConductor
- 745k
+ 746k
- 11:17
+ 11:18
理解和使用 IModelValidator
理解和使用 IModelValidator
- 745k + 746k - 11:17 + 11:18后记
- 745k + 746k - 11:17 + 11:18怎么知道要设置哪个属 - 745k + 746k - 11:17 + 11:18
致谢
致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
INotifyPropertyChanged.Bind
INotifyPropertyChanged.Bind
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18疑问解答
- 745k + 746k - 11:17 + 11:18s:View.Model and Embedded
@@ -539,13 +539,13 @@ s:View.Model and Embedded
- 745k
+ 746k
- 11:17
+ 11:18
解决办法
- 745k + 746k - 11:17 + 11:18线程安全(Thead Safety)
线程安全(Thead Safety)
- 745k + 746k - 11:17 + 11:18致谢
@@ -1183,13 +1183,13 @@致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18致谢
@@ -527,13 +527,13 @@致谢
- 745k + 746k - 11:17 + 11:18程序加载器(The - 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
修改密码
- 745k + 746k - 11:17 + 11:18特殊情况
- 745k + 746k - 11:17 + 11:18参考
参考
- 745k + 746k - 11:17 + 11:18致谢
@@ -541,13 +541,13 @@致谢
- 745k + 746k - 11:17 + 11:18Geographic Coordinate - 745k + 746k - 11:17 + 11:18
后记
- 745k + 746k - 11:17 + 11:18字符串转时间
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
👍致谢名单
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
Resource And Thanks
Resource And Thanks
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
后记
- 745k + 746k - 11:17 + 11:18更多参考资料
@@ -492,13 +492,13 @@更多参考资料
- 745k + 746k - 11:17 + 11:18MongoDB 数据库默认角色
- 745k + 746k - 11:17 + 11:18
@@ -393,13 +393,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
- 745k + 746k - 11:17 + 11:18
创建自己
创建自己 - 745k + 746k - 11:17 + 11:18
顺序
- 745k + 746k - 11:17 + 11:18其它行为(Additional - 745k + 746k - 11:17 + 11:18
工具类
工具类
- 745k + 746k - 11:17 + 11:18服务和实现(Services
- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18
@@ -398,13 +398,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
致谢
- 745k + 746k - 11:17 + 11:18设计模式(Design Mode)
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18定制日志
定制日志
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18判断点与曲线的关系
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
Resource And Thanks
Resource And Thanks
- 745k + 746k - 11:17 + 11:18删除后台代码!(Delete - 745k + 746k - 11:17 + 11:18
名词解释
- 745k + 746k - 11:17 + 11:18详细介绍
详细介绍
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18
@@ -392,13 +392,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
名词解释
- 745k + 746k - 11:17 + 11:18一个部件附近元素取得
一个部件附近元素取得
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18总结
- 745k + 746k - 11:17 + 11:18来源
- 745k + 746k - 11:17 + 11:189、致谢
- 745k + 746k - 11:17 + 11:18重置后恢复
- 745k + 746k - 11:17 + 11:18前后端 API 管理
前后端 API 管理
- 745k + 746k - 11:17 + 11:18扩充阅读
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18最优的对象声明方式
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18其它参考文档
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18模板语法
- 745k + 746k - 11:17 + 11:18🍒增加快捷键
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18T 转 Element
- 745k + 746k - 11:17 + 11:18
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
参考文章
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18编译
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
任意坐标系
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18定义递增的 int32
Id
- 745k
+ 746k
- 11:17
+ 11:18
@@ -396,13 +396,13 @@
- 745k
+ 746k
- 11:17
+ 11:18
停止报错
- 745k + 746k - 11:17 + 11:18CurveVector 克隆
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
特殊查询
- 745k + 746k - 11:17 + 11:18选择什么版本
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
选项说明
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18映射选项
- 745k + 746k - 11:17 + 11:18安装宝塔面板
- 745k + 746k - 11:17 + 11:18解决方法
- 745k + 746k - 11:17 + 11:18防火墙配置
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
ToDo
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
硬件选择
- 745k + 746k - 11:17 + 11:18弃用 out 值
弃用 out 值
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
代码
- 745k + 746k - 11:17 + 11:18导出证书
- 745k + 746k - 11:17 + 11:18Map-Reduce
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
git commit -m 换行
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
其它注意
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18配置文件位置
- 745k + 746k - 11:17 + 11:18JS 的诞生
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18安装
- 745k + 746k - 11:17 + 11:18测试代码
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
DTransform3d
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
效率
- 745k + 746k - 11:17 + 11:18三不等跨梁内力系数
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
连接问题
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18访问bucket被拒绝
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
引用列表
- 745k + 746k - 11:17 + 11:18测试
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
关联
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18其它经验
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18其它技巧
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
蹦蹦
- 745k + 746k - 11:17 + 11:18DVector3d 变换
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
休息日作息时间安排
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
安装SwBentley
- 745k + 746k - 11:17 + 11:182022-02-23
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18操作
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18正文
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
致谢
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18重绘接口实现
- 745k + 746k - 11:17 + 11:18缓存
- 745k + 746k - 11:17 + 11:18JS 中实现
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18发布包
- 745k + 746k - 11:17 + 11:18Regexp
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18注意事项
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
使用
- 745k + 746k - 11:17 + 11:18常见问题汇总
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18安装 Adguard
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18使用
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18legacy启动设置常见的选项
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18Excel
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
完整配置
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18解决步骤
- 745k + 746k - 11:17 + 11:18批量注册
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18演示
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18总结
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18vscode 中设置 powershell - 745k + 746k - 11:17 + 11:18
建议
- 745k + 746k - 11:17 + 11:18
本文字数:
- 726
+ 1.4k
@@ -280,73 +279,22 @@
-
-iEPC数字化全过程工程管理平台(以下简称
-iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI
-等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
-
-软件安装
-软件安装参考:iEPC 安装教程
-
-设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
-设计协同介绍
-项目创建及任务安排
-
-协同流程
-
-详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
-
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
-
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
-
-
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
-
-复制本地目录时需注意:
-目录的最后一级不能有 号
-
-上传设计文件
-提交校审
-校审的主要流程下图所示:
-
+
+
+
+
+
+
+
+
+
+
+
@@ -429,13 +377,13 @@ 提交校审
-
-
-
-
-
-
iEPC数字化全过程工程管理平台(以下简称 -iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI -等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
- -软件安装
-软件安装参考:iEPC 安装教程
---设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
-
设计协同介绍
-项目创建及任务安排
- -协同流程
- -详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
- - -点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
---复制本地目录时需注意:
-目录的最后一级不能有 号
-
上传设计文件
-提交校审
-校审的主要流程下图所示:
- +提交校审
- - -- 745k + 746k - 11:17 + 11:18
删除子模块
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18演示
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18配置步骤
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18第十三章 表达感激
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18参考
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18致谢
- 745k + 746k - 11:17 + 11:18- 745k + 746k - 11:17 + 11:18
参考
- 745k + 746k - 11:17 + 11:18the video form: https://www.youtube.com/watch?v=d0wV9EC3t14
-
-
辅音后的无音要中性化
-what are you
-/ wad ər ju /
-ng 音后如果是元音,ng 发 n 音
-laughing at
-/ lafen ai / at 中的 t 是 stop t
-I wouldn't / ai wuln /
-you said somefunny /ju sei sʌm‘m fʌni: /
-didn't you / dn jə /
-两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
-the guy's a joke machine / dʒou
kməʃn /
-当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
-当只有回答 yes no 时,才用升调
-Someone
who / sʌmwan u /
-can 一般 /kən/
-
-
+
辅音后的无音要中性化
+what are you
+/ wad ər ju /
+ng 音后如果是元音,ng 发 n 音
+laughing at
+/ lafen ai / at 中的 t 是 stop t
+I wouldn't / ai wuln /
+you said somefunny /ju sei sʌm‘m fʌni: /
+didn't you / dn jə /
+两个辅音相连,且不一样时,前一个发音后不要释放,像停止单一样
+the guy's a joke machine / dʒou
kməʃn /
+当两个辅音发音差不多一样时,发重的那个音,省略轻的那个音
+当只有回答 yes no 时,才用升调
+Someone
who / sʌmwan u /
+can 一般 /kən/
+
总结的主要内容为:
--
-
- 作息时间说明 -
- 学习时间说明 -
- 复习知识点简要总结 -
2022-02-23
--
-
- 按时起床 -
- 学习时间 >= 5 h -
总结的主要内容为:
+-
+
- 作息时间说明 +
- 学习时间说明 +
- 复习知识点简要总结 +
2022-02-23
+-
+
- 按时起床 +
- 学习时间 >= 5 h +
汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
+ +关系计算器
+ + +参考
+本文参考以下文章,在此表示诚挚谢意!
+ +]]>汉族的亲戚关系条理例分明尊卑有序:比自己长一辈的称呼有姨父叔伯姑舅,同辈的有兄弟姐妹嫂等等,下一辈有侄甥等等。中国人由于姻亲而产生的亲戚关系相当庞杂,本文将逐一梳理,既是解惑,亦是传承。
- -关系计算器
- - -参考
-本文参考以下文章,在此表示诚挚谢意!
- -]]>这个问题,可以在运行时,通过 .GetType()
来获取类型,就知道应该转成什么类型了。
简介
-设置元素的属性一般是创建一个 -ElementPropertiesSetter,具体代码如下:
-ElementPropertiesSetter setter = new ElementPropertiesSetter(); |
转到 SetColor 的定义我们可以看到,它是这样的:
-public void SetColor(uint color); |
而在 ORD 中,我们可以得知,ColorByLevel 的值是 --1,这就让我们很为难了。
-解决办法
-实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel -真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
-public class ElementPropertyUint |
致谢
-解决思路来自优先社区: -https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
-]]>本文对常用的 ms 中的线条使用进行总结。
- -]]>command table 层级问题
-MDL 中的 Command 最多可以定义为 5 层。一个commandnumber -是一个长整型数,如0x01020345。其中的01(十六进制的前面两位) -表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
-如何获得包含某实体的最小的盒子范围
-如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数: -针对元素描述符:mdlElmdscr_computeRange -针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
-一个部件附近元素取得
-问题描述: -首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。 -但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
-目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。 -然后COPY到另一个文件中去。
- -想问一下经验者,有没有更好的方案。
-解答:
-这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。 -可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
-如何遍历模型包括外部引用在内的所有元素
-MDL 中
-要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
-还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
-想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
-MSElement elem; |
在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int -yourFuncName(void *arg)。下面是FenceDeal的常用写法:
-int FenceDeal (void *arg) |
Add-in
-有一个变通的办法是:
-①放置一个包含所有元素在内的围栅(Fence);
-②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
-当前进度:160页
]]>简介
+设置元素的属性一般是创建一个 +ElementPropertiesSetter,具体代码如下:
+ElementPropertiesSetter setter = new ElementPropertiesSetter(); |
转到 SetColor 的定义我们可以看到,它是这样的:
+public void SetColor(uint color); |
而在 ORD 中,我们可以得知,ColorByLevel 的值是 +-1,这就让我们很为难了。
+解决办法
+实际上,在 .NET 下的颜色,-1 并不代表 ColorByLevel, ColorByLevel +真正的值是一个 uint, 不过它是16进制的,具体的定义如下:
+public class ElementPropertyUint |
致谢
+解决思路来自优先社区: +https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/175980/msce-c-element-bylevel?ReplySortBy=CreatedDate&ReplySortOrder=Ascending
+]]>本文对常用的 ms 中的线条使用进行总结。
+]]> +本文对常用的 ms 中的线条使用进行总结。
+ +]]>command table 层级问题
+MDL 中的 Command 最多可以定义为 5 层。一个commandnumber +是一个长整型数,如0x01020345。其中的01(十六进制的前面两位) +表示第一级命令的索引值,02是第二级命令的索引值,03是第三级命令的索引值,4是第四级,5是第五级。它们都是十六进制的,因而可以推断出前三级分别可有最多256个不同的命令键入,后两级最多可有16个不同的命令键入。
+如何获得包含某实体的最小的盒子范围
+如果采用MDL开发方式,帮助文档 MicroStationAPI.chm 里面有两个函数: +针对元素描述符:mdlElmdscr_computeRange +针对元素:mdlElement_extractRange 具体函数说明请看帮助文档
+一个部件附近元素取得
+问题描述: +首先是我选中了一个PIPE或者一系列的PIPE,但是PIPE上面的symbol是单独的CELL,开始选的时候没有选择这些symbol。 +但是我想把我选中的这些PIPE复制到另一个文件和空间WORK的时候,不仅仅复制PIPE,还想复制上面的这些CELL。
+目前想定的方案:拿到选中的PIPE,然后做成一个range,然后进行扫描,去到PIPE附近的这些CELL。 +然后COPY到另一个文件中去。
+ +想问一下经验者,有没有更好的方案。
+解答:
+这个方案是可行的。不过需要注意的是,通过Range来扫描不是完全可靠的。想象一条斜线,其Range是包围其两个端点的最小立方盒。按照Range扫描一般来说会多出一些元素而不会漏掉元素。 +可以对扫描得到的元素进行进一步的过滤。对于三维模型来说,就需要用到求两个元素间最小距离的函数mdlKISolid_minimumDistanceBetweenEntities了。
+如何遍历模型包括外部引用在内的所有元素
+MDL 中
+要遍历模型的整个元素,首先想到的是模型元素迭代器。这种遍历方式需要自己获取元素属性,从而屏蔽掉自己不需要处理的元素,所有效率一般。元素迭代器还不能直接访问外部引用元素。
+还有个遍历方法就是scan扫描,scan之前可以定义扫描范围,通过“图层”、"颜色"、“范围”、“线型”等进行过滤。很可惜这种方式虽然效率较高但也不能访问到外部引用元素。
+想得到外部引用里的元素就要用到fence。程序首先自己创建fence,然后得到fence所包含的元素。示例代码如下:
+MSElement elem; |
在FenceDeal回调函数里可以处理包括外部引用在内的所有元素。在V8i中这个FenceDeal回调函数的原型是:int +yourFuncName(void *arg)。下面是FenceDeal的常用写法:
+int FenceDeal (void *arg) |
Add-in
+有一个变通的办法是:
+①放置一个包含所有元素在内的围栅(Fence);
+②用ActiveDesignFile.Fence.GetContents来获得围栅内的元素
+当前进度:160页
]]>Element 克隆
-程序集 | -命名空间 | -
---|---|
Bentley.DgnPlatformNET.dll | -Bentley.DgnPlatformNET | -
//复制元素 |
SolidKernelEntity 克隆
-程序集 | -命名空间 | -
---|---|
Bentley.DgnDisplayNet.dll | -Bentley.DgnPlatformNET | -
// 复制 SolidKernelEntity |
CurveVector 克隆
-调用对象的 Clone()
方法。
Element 克隆
+程序集 | +命名空间 | +
---|---|
Bentley.DgnPlatformNET.dll | +Bentley.DgnPlatformNET | +
//复制元素 |
SolidKernelEntity 克隆
+程序集 | +命名空间 | +
---|---|
Bentley.DgnDisplayNet.dll | +Bentley.DgnPlatformNET | +
// 复制 SolidKernelEntity |
CurveVector 克隆
+调用对象的 Clone()
方法。
CONNECTION Client
,重新打开。可以多试几次
如果 ORD 在安装过程中出现 Failed to copy payload for xxx
-时,可能有几下几个原因:
-
-
由于Connection Client的版本不匹配导致。
-由于.Net Framework 版本不匹配导致的。
-一些国产软件可能会影响安装并导致这个报错。
-可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
-
参考:
- ]]>VBA rejected the OpenRoads Designer Application Object
+]]> +如果 ORD 在安装过程中出现 Failed to copy payload for xxx
+时,可能有几下几个原因:
-
+
由于Connection Client的版本不匹配导致。
+由于.Net Framework 版本不匹配导致的。
+一些国产软件可能会影响安装并导致这个报错。
+可以在安装时暂时关闭杀毒软件和防火墙,或者重启电脑后再试。
+
参考:
+ ]]>-
-
转为 fbx
-导出为 3ds 文件
- -在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
-
-
+
转为 fbx
+导出为 3ds 文件
+ +在 3DMAX 中导出 3DS 格式,然后在 MS 中导入 3DS.
+
今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome -的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
-安装
-在包管理器中添加 nuget 安装包。
---Install-Package FontAwesome.Sharp
-
功能
-将 FontAwesome 图标生成图片和 Icon 图标
-Winform 上使用
--
-
- 在 Winform 上可以使用下列类
-
-
-
- IconButton, -
- IconToolStripButton, -
- IconDropDownButton, -
- IconMenuItem, -
- IconPictureBox 或者 -
- IconSplitButton -
- - 当然,如果你只想为 icon 生成
-bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
-
var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms |
WPF 上使用
-此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
-致谢
--
-
- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp -
- 图片来源于网络 -
今天在 github 上发现了一个可以在 Winform、WPF 中使用 Font Awesome +的项目,本项目不需要自己安装 Font Awesome 字体,用起来很方便。
+ +项目地址:https://github.com/awesome-inc/FontAwesome.Sharp
+安装
+在包管理器中添加 nuget 安装包。
+++Install-Package FontAwesome.Sharp
+
功能
+将 FontAwesome 图标生成图片和 Icon 图标
+Winform 上使用
+-
+
- 在 Winform 上可以使用下列类
+
-
+
- IconButton, +
- IconToolStripButton, +
- IconDropDownButton, +
- IconMenuItem, +
- IconPictureBox 或者 +
- IconSplitButton +
+ - 当然,如果你只想为 icon 生成
+bitmap,可以使用
ToBitmap()/ToImageSource
的扩展。如下:
+
var bitmap = IconChar.BatteryEmpty.ToBitmap(16, Color.Black); // Windows Forms |
WPF 上使用
+此处因为不需要,便暂时未做翻译,请直接参考:https://github.com/awesome-inc/FontAwesome.Sharp
+致谢
+-
+
- 本文来源于:https://github.com/awesome-inc/FontAwesome.Sharp +
- 图片来源于网络 +
致谢
本文转载于 https://www.bbsmax.com/A/Gkz1ony25R/
+]]> +PropertyGrid控件就是Visual +Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
+ +普通显示
+在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject +属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
+如果要同时显示多个对象,可以将一个对象数组赋值给 +propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
+更改显示方式
+当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
+特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在 +PropertyGrid 中用到的特性:
+-
+
DescriptionAttribute
+设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
+CategoryAttribute
+设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给 +"杂项" 类别。可以将此特性应用于所有属性。
+BrowsableAttribute
+表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
+ReadOnlyAttribute
+表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 +get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get +访问器的公共属性也是只读的。
+DefaultValueAttribute
+表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
+DefaultPropertyAttribute
+表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
+
++如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
+
自定义显示
+我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
+//属性表管理类 |
下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
+PropertyManageCls pmc = new PropertyManageCls(); |
显示结果:
+ +实现下拉框
+要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
+//下拉框类型转换器 |
我们实现了下拉框类型转换器,但该如何使用呢?
+-
+
方法一:在属性上方添加标记 +[TypeConverter(typeof(DropDownListConverter))]
+方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
效果图如下:
+ +属性编辑器
+使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
+//文件路径选择 public class PropertyGridFileItem : UITypeEditor |
使用方法:
+-
+
在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem), +typeof(System.Drawing.Design.UITypeEditor))]
+使用代码
+private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
+
效果图如下:
+ +自定义要显示的属性
+PropertyGrid +默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
+-
+
- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为 +[Browsable(false)] +
- 想通过自定义的 Attribute 来控制属性的显示 +
这个时候,我们就需要对显示的属性进行筛选。我们通过实现
+ICustomTypeDescriptor,然后重写方法
+public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+来实现。
实现部分代码如下:
+public class NamedGroup :ICustomTypeDescriptor |
致谢
+[1]. 本文来源:C#自定义PropertyGrid属性
+更多参考资料
+[1]. PropertyGrid控件心得
+[2]. Customized +display of collection data in a PropertyGrid
+[3]. TypeConverter的层次结构
+ + ]]>在 GetStandardValues 方法中,会传递下来一个 context, 而 context.Instance 就是调用该转换器的实例,所以,将它转换成相应的对象,然后利用对象里面的值来动态生成下拉选项。
-]]> -PropertyGrid控件就是Visual -Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。
- -普通显示
-在PropertyGrid中显示属性很容易,我们可以直接给propertyGrid1.SelectedObject -属性赋值,SelectObject属性可以获取或设置当前选定的对象,数据类型为object,这就意味着我们可以直接将一个对象赋给它。针对一个对象,它会将对象中的所有公共属性显示在PropertyGrid上。
-如果要同时显示多个对象,可以将一个对象数组赋值给 -propertyGrid1.SelectedObjects。它会自动计算多个对象的公开属性并显示,当各个对象中属性值相同时,会显示相同的值,如果不同时,则会不显示确定的值。
-更改显示方式
-当只用上面的赋值方式,那么显示出来的数据名称会直接是属性的名称,如果想要进行汉化,需要对每个属性添加相应的特性(Attribute)来进行配置。
-特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了在 -PropertyGrid 中用到的特性:
--
-
DescriptionAttribute
-设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。
-CategoryAttribute
-设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给 -"杂项" 类别。可以将此特性应用于所有属性。
-BrowsableAttribute
-表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。
-ReadOnlyAttribute
-表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 -get 和 set 访问函数的公共属性在网格中是可以编辑的,如果只有 get -访问器的公共属性也是只读的。
-DefaultValueAttribute
-表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。
-DefaultPropertyAttribute
-表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。
-
--如果想要在属性表中添加颜色选择和字体选择那是很容易一件事,可以在要展示的类中添加Color类型属性,和Font类型属性,绑定后,就可以进行颜色选择和字体选择了
-
自定义显示
-我们可以看出这种上面这种显示属性方法并不够灵活,我们不能方便的及时增加或者删除属性。
-//属性表管理类 |
下面我们来看看该如何使用,我们仍然在Form_load中添加代码如下:
-PropertyManageCls pmc = new PropertyManageCls(); |
显示结果:
- -实现下拉框
-要实现下拉框,需要使用类型转换器,继承与TypeConverter或者StringConverter,然后重写方法,代码如下:
-//下拉框类型转换器 |
我们实现了下拉框类型转换器,但该如何使用呢?
--
-
方法一:在属性上方添加标记 -[TypeConverter(typeof(DropDownListConverter))]
-方法二:我们可以在外部定义数组,使用方便,使用方法代码如下:
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
string []s=new string[] { "1", "2", "3", "4" };
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Converter = new DropDownListConverter(s);//Property的Converter属性就可以设置类型转换
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
效果图如下:
- -属性编辑器
-使用属性编辑器实现路径选择,属性编辑器需要继承与UITypeEditor。
-//文件路径选择 public class PropertyGridFileItem : UITypeEditor |
使用方法:
--
-
在属性上方添加标记[EditorAttribute(typeof(PropertyGridFileItem), -typeof(System.Drawing.Design.UITypeEditor))]
-使用代码
-private void Form_load(object sender, EventArgs e)
{
PropertyManageCls pmc = new PropertyManageCls();
Property pp = new Property(txtname.Text,txtvalue.Text, false, true);
pp.Category = "基本信息";
pp.DisplayName = "我的ID";
pp.Editor= new PropertyGridFileItem();//Property的Editor属性就可以设置属性编辑
pmc.Add(pp);
propertyGrid1.SelectObject = pmc;
}
-
效果图如下:
- -自定义要显示的属性
-PropertyGrid -默认显示所有的公开属性,包括父类的公开属性。在使用的过程中,我们可能会有如下需求:
--
-
- 只想显示子类的某些属性,而父类因为某些原因不能将它的属性标记为 -[Browsable(false)] -
- 想通过自定义的 Attribute 来控制属性的显示 -
这个时候,我们就需要对显示的属性进行筛选。我们通过实现
-ICustomTypeDescriptor,然后重写方法
-public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
-来实现。
实现部分代码如下:
-public class NamedGroup :ICustomTypeDescriptor |
致谢
-[1]. 本文来源:C#自定义PropertyGrid属性
-更多参考资料
-[1]. PropertyGrid控件心得
-[2]. Customized -display of collection data in a PropertyGrid
-[3]. TypeConverter的层次结构
- - -]]>解决方案
-通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
-解决办法有两种:
--
-
第一种:在主方法上加上[STAThread]特性标签
-[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
-第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
-Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
-
在代码里面,我的 Main 已经声明了 [STAThread]
-特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
特此记录,以免今后遗忘。
-致谢
-本文摘抄至:妄揽明月
]]>解决方案
+通过寻找相关资料,了解到了STA单元模式和COM对象,总的来说:winform中,很多控件是COM对象,这样的对象只能被sta模式中的线程所调用。
+解决办法有两种:
+-
+
第一种:在主方法上加上[STAThread]特性标签
+[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LogInForm());
}
+第二种:将线程的单元状态设置为单线程单元,thread.SetApartmentState(ApartmentState.STA)
+Thread th = new Thread(()=> new Form1().ShowDialog());
th.SetApartmentState(ApartmentState.STA);
th.Start();
+
在代码里面,我的 Main 已经声明了 [STAThread]
+特性,但是依然报错,我想,可能是因为是服务的问题。最后采用了第二种方法解决了。
特此记录,以免今后遗忘。
+致谢
+本文摘抄至:妄揽明月
+]]>Excel
- -参考:
- -]]>Excel
+ +参考:
+ +]]>摘抄至:
-http://www.ruanyifeng.com/blog/2014/05/restful_api.html
-]]>504HTTP
摘抄至:
+http://www.ruanyifeng.com/blog/2014/05/restful_api.html
+]]>本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30 -分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
- -到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
-约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
-但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
-后记:
-这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
-同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
-]]>事情就这样过去了,老卓后来的几天工作虽照常,但谁都看得出来是有心事。最后他鼓起勇气拿着自己从老家带来特产趁着下班时间敲开了小甘的房门:“这不是答应了过年来给你一份新年礼物吗?你瞧,我拿来了,那天的事情你知道我嘴笨......”
还没等老卓说完,小甘哭笑不得,“老卓,你并没有做错什么,错的是我咧!”
原来那天老卓说出口的话并没有让小甘生气,而是震惊了许久。面对着眼前的老卓,小甘继续补充到:“做人做事要有原则、有底线,施工安全更是如此,任何时候都不能动摇,感谢你通过这样的一句话教会我了这个道理,这个新年礼物来的比什么都要珍贵哩!”
+]]> +本周轮到我值夜班,今天早早的就起来了,也没有了平时的睡意。我记得睁开眼大约是8:30 +分左右,懒了一会儿床,起来就9点了。本想着做一篇西安的攻略,可是想想,好像时间还蛮多,应该出去走走。在益阳的半年里,很多地方都已经去了,漫无目的在网上浏览者,在地图上惊鸿一瞥,发现沅江是个好地方。洗漱完,想做个攻略再走,但是担心时间不够,所以直接拎着包和相机就出门了。
+ +到达车站之前,我都不知道车票是多少,后来一买票才知道,只需要10块。心里还是蛮高兴,走对了,应该不远,一天来来回回够了。
+约3刻钟的样子,就到了沅江。初识的沅江给人印象并不是很好,车站很破,楼房全部散布着暮年的气息,慵懒的在街边立着。沅江的交通我最是不喜欢,公交不会报站,特别是在网上查不到公交的信息,对于我一个陌生人来讲,这是比较麻烦的事。
+但沅江有她自己的魅力。每一块土地拥抱着湖泊,每一个湖泊躺在一块土地上。多水的沅江,尽是柔柔的美。这儿的人过得很惬意,面里总是带着欢快,在他们的身上看不到生活的压力,舒缓的节奏,那么自然。
+后记:
+这篇游记并未完成,但是却反应了才毕业不久的自己不甘工地的平淡生活,从时间缝里去拥抱世界的精神,这也为后来的辞职作下了铺垫。
+同时,这种精神,都值得现在的自己学习:心有抱负,积极阳光。
]]>去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
-和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
-有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
-我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
-夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
-大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
-已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
-等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
-]]>工作中的人,有的可爱,有的又是可恨,有的紧着小家,但却失了大家。工作环境的复杂,不是外部,而是人心。老张是施工队的负责人,在他的眼中,大多数时候只有利益。在需要别人的时候,卑躬屈膝,当找他帮忙时,便笑里藏刀,表面答应得好好的,可是转身就抛之脑后。这是最为可恶的行径了,忍不住让人感叹。老张时常在嗟叹,生活之不易,可是却忘了,大家的生活都是不易的,他只顾着自己了,从没想过,在人生的路上,相互扶持,是他的无奈呢,还是他本无心。
他,耐不了人与人之间的这些不真诚,便悄悄地决定走了,每天做着浪费生命的毫无意义的人际交往,这本也不是他期待的生活。其他人都说,搞工程四海为家,而他却觉得那个只是宿舍。换了新工作,他看到了希望,同时又出现了新的绝望。现在住的地方不叫宿舍了,但也不叫家,对于他来说那只是落脚点。他时常一个人发着呆,不胜感慨,诺大的城市,容得下他的,只有几个平米。没有经历过,便都是向往,以前的他,只知隔行如隔山,可是却不懂得,每座山中都有虎。生活的无奈,已经不是无病呻吟的句子,而是赤裸裸的现实。他也不知剩下的光阴是或喜,只是一步一步,走下去。
3 来世 若是有来世,他希望,一切都好。
+]]> +去年夏末的时候,我和他相识。他初给我的印象是很阳光,脸上的轮廓略显刚毅,戴着一副黑框眼镜,又显得很斯文。他说话时带着一点甘肃的口音,总是把”yun”读作“yong”,当时听到这个口音的时候,很是亲切,大约是大学有一个好友,也是甘肃的缘故吧。
+和他第一次见面是在施工现场的办公室,我不认识他,他也不认识我,虽然见了面,好像也没打招呼。就这样呆了一两个月,慢慢地变得熟悉,熟悉彼此的性格,熟悉彼此的价值观,熟悉对方有没有女朋友,然后就成为了好朋友。
+有句话说得很对,只有当失去了,你才会懂得珍惜。我离开之后,才发现那段青葱的岁月,如此值得怀念。自换了工作已有两月余,面对新环境,我战战兢兢的生活和工作着,一个人,一座城,默默地打拼。每天拼命的学习,认识了另外的人,做另外的事,一切,都很累。静下来的时候,总会很想念以前的日子。
+我和他的床是对着的,中间隔了一张桌子,是少强留下的,后来又有一张,好像是李伟的。我俩把它们拼在了一起,我在上面放了个简易书架,还养了一盆“小家碧玉”。有时候我会给它拍拍照,他会浇浇水,虽然是我买的,好像更是他的宝贝。
+夏天的时候,外面很热,他去买水的时候,总会捎上我的一份,有时候桌上的纸巾用完了,他会多拿出一卷,一卷放在他那儿,一卷放在我这边。上次出去把妹,他还和我商量着暗号,要是钱不够了,打个电话给他,他立马给我想办法,在电话里就问,拆迁怎么样了,拆了一栋就是一千,两栋就是两千,免得被姑娘听见自己借钱,很窘迫,我笑他,我这是举朋友之力追妹子啊。我知道,要是我真这样给他打电话,他肯定会马上帮我解决的。我们的交情不需要在意金钱,只是彼此肝胆相照。
+大学就很喜欢吃鱼,有一次,拽着他去了工艺美大旁边吃了那儿的纸包鱼,很鲜嫩,这是第一次吃纸包鱼,后来在其他地方也吃过,可是没那味道,好像从那时候起,他也迷上吃鱼了。有一天,咱俩就约着,把益阳的鱼尝个遍。为了吃一次鱼,我俩先是转了一趟公交,然后打了快半个小时的车,才到城院的小吃街那边,鱼店很多,觅着一家烤鱼店就窜进去了,那儿的鱼也很好吃。
+已经离开益阳有一段时间了,有一天晚上,微信振动,是他发来的消息,有一个定位,然后来了句想你了。初听这话,以为他是开玩笑的,居然写得那么肉麻,然后点开定位,突然发现,那是我们第一次吃鱼的位置,他在那边喝酒,应该是喝了有几分了,此时,虽然和他隔了一个省的距离,但仍能感受到那如浓酒般的思愁。我也非常怀念彼此共同度过的岁月,真挚而又轻松,快乐而又写意。人生又哪能轻易找到几个这样的知心朋友呢?
+等他来到我的地方,等我去到他的城市,等和他在远方遇见,不醉不归。
]]>七月过成了安生,安生活成了七月。
-恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
-安生给七月打电话。
-“七月,工作怎么样?”
-“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
-“工资怎么样?”
-“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高 -“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
-七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
-安生活成了七月想的那样。
-七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
-七月在挣脱。
-]]>七月过成了安生,安生活成了七月。
+恰好,我也有两个朋友,一个叫七月,另一个是安生,他俩是基友。七月成绩一直优秀,初中出去上通宵,第二天考试拿了年级第一,高中走路都在看小说,成绩也还不错,大学成绩差点保研,在所有人眼中他会很有出息;安生浪荡,也很贪玩儿,初中留了级,高中辍学出去潇洒,大学挂科,他有自己的想法,没毕业,自己赚钱买了一辆车。
+安生给七月打电话。
+“七月,工作怎么样?”
+“工作很累,没有休息的时间,感觉整天都在工作,不是我想要的生活。”
+“工资怎么样?”
+“不怎么样,有点低……”七月心里其实还有一点自豪,因为他的很多朋友工资没他高 +“确实有点低啊。我在学校旁边和人开了一个点,每天能赚个2000左右吧。”
+七月第一年工作回去和安生见了一面,是安生开车来接的他,安生的车技很好,放的歌不像七月听的那样安静,很激昂。安生很忙,他们吃了一碗面就分开了,安生给七月带去了震撼,七月也想要一辆车,想要安生的潇洒生活。
+安生活成了七月想的那样。
+七月想去环游世界,想有一辆车,一幢房子,想给父母好的生活......
+七月在挣脱。
+]]>读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
+ +总结
+通读全书,其核心思想是:
+不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
+通过非暴力沟通的 4 +个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
+++重要的步骤再次重复一遍:
++
+- 客观观察
+- 表达感受
+- 明确需要
+- 提出请求
+
第一章 让爱融入生活
+-
+
- 转变谈话和岭听的方式,改用非暴力沟通 +
- 既诚实、清晰地表达自己,又尊重与倾听他人 +
非暴力沟通过程:
+-
+
- 先客观观察 +
- 接着表达感受 +
- 然后明确需要 +
- 最后提出请求 +
第二章 什么蒙蔽了爱?
+本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
+主要原因有:
+-
+
- 用并道德标准去评判别人 +
- 与其它案例进行比较,达不到自己的期望 +
- 为了回避责任而失去理性 +
- 强人所难 +
总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
+第三章 区分观察和评论
+观察:客观地对既有现象进行陈述
+评论:带有主观意志地发表看法
+以下面的一句话为例:
+哥哥昨天无缘无故对我发脾气。
“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
+以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
第四章 体会和表达感受
+可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
+感受与想法不一样,要注意区分:
+感受:描述自身客观的状态
+例:作为吉他手,我有些失落。
想法:通过主观加工后的表达
+例:我觉得我吉他弹得不好。
为了能够清楚表达自己的感受,可以借鉴以下词汇:
+-
+
- 需要得到时满足时的感受: +
兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
+-
+
- 需要没有得到满足时的感受: +
害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
+当听到不中听的话时,我们有四种选择:
+-
+
- 责备自己 +
- 指责他人 +
- 体会白己的感受和需要 +
- 体会他人的感受和需要 +
++根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
+
第五章 感受的根源
+感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
+当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
+第六章 请求帮助
+当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
+-
+
- 提出的请求要具体。 +
- 在交流中明确谈话目的,不要跑题 +
- 主动请求反馈。可以主动问一句:"我的意思楚了吗?" +
在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
+因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
+第七章 用全身心倾听
+为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
+倾听他人有助于对他人的理解和接纳。
+有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
+当我们痛苦得无法倾听他人时,我们需要:
+-
+
- 体会自己的感受和需要 +
- 大声地提出请求 +
- 换—个环境 +
第八章 倾听的力量
+-
+
- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。 +
- 通过倾听,可以减少可能发生的潜在暴力 +
- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求 +
第九章 爱自己
+将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
+当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
+当评价自己的行为时,我们专注于尚未满足的需要。
+在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
+++将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
+
第十章 充分表达愤怒
+非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
+愤怒形成的原因:由于自身的感受和需要没有得到满足
+在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
+表达愤怒的步骤:
+-
+
- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己 +
- 想—想是什么想法使我们生气了 +
- 了解自己想要满足的需要 +
- 表达感受和尚未满足的需要 +
第十一章 运用强制力避免伤害
+在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
+第十二章 生活的热情
+通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
+第十三章 表达感激
+非暴力沟通表达感激的方式包含三个部分:
+-
+
- 对方做了什么事情使我们的生活得到了改善 +
- 我们有哪些需要得到了满足 +
- 我们的心情怎么样 +
当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
+]]>读完《非暴力沟通》,略有所得,于是整理其中的阅读心得,以便在日常使用。
- -总结
-通读全书,其核心思想是:
-不论什么场景(交流、愤怒、被别人感激等),我们都应该通过非暴力沟通的思想,先客观观察、接着体悟此时的感受、然后明确需要,最后根据需要提出请求。
-通过非暴力沟通的 4 -个步骤,使我们与人沟通时对事不对人,直指任务核心,提高沟通效率、降低情绪对自己的影响。
---重要的步骤再次重复一遍:
--
-- 客观观察
-- 表达感受
-- 明确需要
-- 提出请求
-
第一章 让爱融入生活
--
-
- 转变谈话和岭听的方式,改用非暴力沟通 -
- 既诚实、清晰地表达自己,又尊重与倾听他人 -
非暴力沟通过程:
--
-
- 先客观观察 -
- 接着表达感受 -
- 然后明确需要 -
- 最后提出请求 -
第二章 什么蒙蔽了爱?
-本章主要讲是什么让我们忽略了他人的感受,不知不觉地与他人在进行暴力沟通。
-主要原因有:
--
-
- 用并道德标准去评判别人 -
- 与其它案例进行比较,达不到自己的期望 -
- 为了回避责任而失去理性 -
- 强人所难 -
总结上述几条原因,可以归结为,我们习惯站在自己的角度看到问题,当他人未能达到自己的预期时,就会使自己容易失去理智,不自觉地产生暴力沟通。
-第三章 区分观察和评论
-观察:客观地对既有现象进行陈述
-评论:带有主观意志地发表看法
-以下面的一句话为例:
-哥哥昨天无缘无故对我发脾气。
“无缘无故"是评论。此外,我认为说哥哥发脾气了也是评论。他也可能是感到害怕、悲伤或别的。
-以下例句描述了观察结果而不含任何评论:哥哥告诉我他生气了
。
第四章 体会和表达感受
-可以换位思考,细心地去体会对方的情绪,然后准确地表达自己的感受。
-感受与想法不一样,要注意区分:
-感受:描述自身客观的状态
-例:作为吉他手,我有些失落。
想法:通过主观加工后的表达
-例:我觉得我吉他弹得不好。
为了能够清楚表达自己的感受,可以借鉴以下词汇:
--
-
- 需要得到时满足时的感受: -
兴奋、喜悦、欣喜、甜蜜、精力充沛、兴高采烈、感激、感动、乐观、自信、振作、振奋、开心、高兴、快乐、愉快、幸福、陶醉、满足、欣慰、心旷神怡、喜出望外、平静、自在、舒适、放松、踏实、安全、温暖、放心、无忧无虑
--
-
- 需要没有得到满足时的感受: -
害怕、担心、焦虑、忧虑、着急、紧张、心神不宁、心烦意乱、忧伤、沮丧、灰心、气馁、泄气、绝望、伤感、凄凉、悲伤、恼怒、愤怒、烦恼、苦恼、生气、厌烦、不满、不快、不耐烦、不高兴、震惊、失望、困惑、茫然、寂寞、孤独、郁闷、难过、悲观、沉重、麻木、精疲力尽、委靡不振、疲惫不堪、昏昏欲睡、无精打采、槛勉、惭愧、内疚、妒忌、遗憾、不舒服
-当听到不中听的话时,我们有四种选择:
--
-
- 责备自己 -
- 指责他人 -
- 体会白己的感受和需要 -
- 体会他人的感受和需要 -
--根据场景选择不同的应对方式,第 3 和 4 会让人理智和客观
-
第五章 感受的根源
-感受的根源在于我们自身的需要(我觉得也可以理解成诉求)。通过了解我们自己的需要、愿望、期待以及想法,我们可以准确表达自己的感受。
-当听到不中听的话时,我们就会去体会别人和自己的感受,然后进一步分析彼此的诉求,从而理智、客观地进行非暴力沟通。
-第六章 请求帮助
-当我们明确自己的需要后,要向对方提出具体的请求。为了使得请求更容易得到积极回应,我们可以:
--
-
- 提出的请求要具体。 -
- 在交流中明确谈话目的,不要跑题 -
- 主动请求反馈。可以主动问一句:"我的意思楚了吗?" -
在实践中,我们要区分请求与命令的区别:—旦人们认为不答应就会受到责罚,他们就会把请求看作是命令。
-因此,如果是领导对下属,可以提前清楚地表达自己无意强人所难,让避免让方将某个请求理解成命令。
-第七章 用全身心倾听
-为了倾听他人,我们需要先放下已有的想法和判断,全神贯注地体会对方,发现对方真实的需要。
-倾听他人有助于对他人的理解和接纳。
-有时,我们可以主动表达我们的理解,来帮助对方了解我们在何种程度上明白丁他的意思。
-当我们痛苦得无法倾听他人时,我们需要:
--
-
- 体会自己的感受和需要 -
- 大声地提出请求 -
- 换—个环境 -
第八章 倾听的力量
--
-
- 通过倾听,我们将意识到他人的人性以及彼此的共通之处,这会使白我表达变得容易。 -
- 通过倾听,可以减少可能发生的潜在暴力 -
- 如果别人说“不”,有时候并不是拒绝,通过倾听,我们可以发现对方真实的诉求 -
第九章 爱自己
-将非暴力沟通应用于自身,让自己与本我进行非暴力沟通,从而培育对自己的爱。
-当我们的表现不完美时,我们可以通过体会忧伤和自我宽恕,来看清个人成长的方向,以及避免自我惩罚。
-当评价自己的行为时,我们专注于尚未满足的需要。
-在曰常生活中,我们主动根据需要和价值观来选择生活,用“选择做”来取代“不得不”,将被动转为主动。
---将【不得不做】做转换成【我选择做_,是因为我想_】,激发主观能动性
-
第十章 充分表达愤怒
-非暴力沟通并不主张忽视或压抑愤怒,它认为,通过深入地了解愤怒,我们可以充分表达内心的渴望。
-愤怒形成的原因:由于自身的感受和需要没有得到满足
-在愤怒时,我们应专注于自己或他人的感受和需要,将愤怒化为满足需求的动力,而不是驱使我们去惩罚他人。
-表达愤怒的步骤:
--
-
- 首先,停下来,除了呼吸,什么都别做,我们避免采取行动去指责或惩罚对方。我们只是静静地体会自己 -
- 想—想是什么想法使我们生气了 -
- 了解自己想要满足的需要 -
- 表达感受和尚未满足的需要 -
第十一章 运用强制力避免伤害
-在有些情形中,我们没有机会和他人交流,这时,我们也许需要使用强制力来保护白己和他人。使用强制力的目的是出于防卫的巨的而不是为了惩罚对方。
-第十二章 生活的热情
-通过运用非暴力沟通,我们不再试图分析自己或他人有什么毛病,而是用心去了解我们的需要,这样,我们的内心将逐渐变得平和。—旦我们发现自己心底深处的愿望并采取积极的行动,我们将会重获生活的热情。
-第十三章 表达感激
-非暴力沟通表达感激的方式包含三个部分:
--
-
- 对方做了什么事情使我们的生活得到了改善 -
- 我们有哪些需要得到了满足 -
- 我们的心情怎么样 -
当另别人对我们表达感激时,我们可以与对方—起庆祝生命的美—既不自大,也不假谦虚。
-]]>-- -本文随着视频剪辑的熟练度增加,会不定期进行更新
-
汇总
-名称 | -特点 | -下载方式 | -
---|---|---|
Pexels video | -视频数量种类多 | -无需注册 | -
Pixabay视频 | -视频数量种类多 | -无需注册,免费商用 | -
Mixkit | -视频、音乐素材多 | -部分可商用 | -
Videvo | -免费视频、音乐、音效素材 | -无需注册 | -
IgniteMotion | -仅背景视屏 | -- |
Coverr | -多样素材 | -部分商用 | -
Mazwai | -多样素材 | -可商用 | -
Videezy | -多样素材 | -- |
鉴于经济实力,本文仅推荐一些免费的视屏资源。
-Pexels video
- -经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频 -Pexels video,同样是免费下载
-Pexels video -上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
-Pixabay 视频素材库
- -同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
-Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
-Mixkit
- -Mixkit -是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato -Elements等付费产品不同,Mixkit -的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere -Pro模版,你可以免费下载视频,支持个人和商业使用
-Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
-Videvo
- -Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo -把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
-唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
-IgniteMotion
- -IgniteMotion -是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
-IgniteMotion -的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion -中找一个视频,无需搜索就能快速找到
-Coverr
- -Coverr -是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
-Dareful
- -Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
-Life of Vids
- -Life of Vids -是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
-Videezy
- -Videezy -是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
-使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
-Mazwai
- -Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
-参考
- -]]>PPT
-使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
---缺点:
--
-- 只能整个导出,不能导出当前页
-- 不有丰富的素材库
-
在线 MG 动画制作网站
-除了 PPT,我们还可以使用一些在线的 MG -动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
-秀展网
-网址:https://www.xiuzhan365.com/
-]]>iEPC数字化全过程工程管理平台(以下简称 -iEPC)是一个集项目管理、OA办公、BIM生命周期应用、工程AI -等多功能于一体的综合性平台,它打通了从设计到施工和运营的工程项目全生命周期管理流程,为工程建设进行高效的数字化赋能。
-本文将介绍如何基于该平台实现设计协同。
- -软件安装
-软件安装参考:iEPC 安装教程
+--设计人员必须要使用 iEPC 桌面端才可使用设计协同的高级功能
+本文随着视频剪辑的熟练度增加,会不定期进行更新
设计协同介绍
-项目创建及任务安排
+ +汇总
+名称 | +特点 | +下载方式 | +
---|---|---|
Pexels video | +视频数量种类多 | +无需注册 | +
Pixabay视频 | +视频数量种类多 | +无需注册,免费商用 | +
Mixkit | +视频、音乐素材多 | +部分可商用 | +
Videvo | +免费视频、音乐、音效素材 | +无需注册 | +
IgniteMotion | +仅背景视屏 | ++ |
Coverr | +多样素材 | +部分商用 | +
Mazwai | +多样素材 | +可商用 | +
Videezy | +多样素材 | ++ |
鉴于经济实力,本文仅推荐一些免费的视屏资源。
+Pexels video
+ +经常找图片的人相信都听说过Pexels,它是一个非常有名的免费图片素材站,后来Pexels又推出了视频 +Pexels video,同样是免费下载
+Pexels video +上的视频数量种类多,有自然风景相关,也有人物会议等视频,视频展示采用瀑布流的方式,可以直接当前窗口预览视频,无需注册就能下载
+Pixabay 视频素材库
+ +同Pexels一样,Pixabay也是非常有名的免费图片网站,它也提供了免费无版权的视频
+Pixabay视频不仅数量多,还提供了非常多的信息,你可以在下载前预览视频,也可以查看视频的各种参数,包括视频分辨率、时长、格式、上传时间等,无需注册就可以下载,无需署名可以商业用途
+Mixkit
+ +Mixkit +是Envato去年推出的一个视频、音乐的素材平台,和Envatomarket、Envato +Elements等付费产品不同,Mixkit +的所有内容都是完全免费的,网站提供了免费的视频、音乐素材、Premiere +Pro模版,你可以免费下载视频,支持个人和商业使用
+Mixkit平台的视频质量都非常高,你可以根据类别进行查找,包括城市、咖啡、天空、人物、海滩、办公、食物等,每个视频都清晰独特,适合制作创意视频使用
+Videvo
+ +Videvo是一个专业的视频素材网站,提供成千上万的免费视频、音乐、音效素材,旨在成为你的唯一资料库。Videvo +把视频分成了很多类别,有动物、商业、办公室、工业、医疗、视觉特效等,你可以通过类别标签快速找到需要的视频,找到合适的视频可以直接下载,无需注册
+唯一需要注意一点是有些视频是付费的,带有PREMIUM标志的需要加入会员才可以下载,如果你只是想找一些免费视频,有一个技巧就是可以点击过滤器,只看免费的视频就不会被干扰了,而且即使是免费的都有1万以上,对于个人使用完全足够了
+IgniteMotion
+ +IgniteMotion +是一个以特效和背景视频为主题的素材网站,它不像其他网站提供各种各样的素材,就是单纯的背景视频。
+IgniteMotion +的背景视频有几个明确的类别,比如云朵、地球、火焰、抽象、水、科幻等,数量不多,但都适合做为素材使用,如果你在IgniteMotion +中找一个视频,无需搜索就能快速找到
+Coverr
-协同流程
- -详细使用文档
-在日常的使用中,可以按下列的流程,一步一步来操作。
-iEPC 登陆
-单击打开 iEPC 桌面端安装包中的
-iEPCDesktop.exe
,输入账号密码登陆。
Coverr +是一个全面的视频素材网站,它提供了技术、心情、自然、人物、动物、都市等多种类别的无版权视频素材,你可以直接从网站下载,无需询问,可用作个人和商业用途
+Dareful
-新建本地工作目录
-什么是本地工作目录?
-本地工作目录是指在自己电脑上,项目文件保存的目录位置,且该目录中必须有以自己名字命名的目录。
-今后属于自己设计文件都放到自己名字的目录下,自己名字目录中的子目录可以按项目或自己的风格进行自行管理。
-为了方便演示,新建一个工作目录
-C:\Users\galens\Desktop\temp\协同平台测试\施工图
,同时在该目录下创建一个以设计人员
-甘明昔
为名称的目录,如下图所示:
Dareful是一个免费的4K视频素材站点,所有视频都是4K高清格式,完全免费,无需署名,可以商业使用,缺点是下载比较麻烦,需要用邮箱注册,而且下载链接需要到邮箱中找
+Life of Vids
-项目登陆
-登陆系统后,会进入到【首页】,点击【请登陆项目】打开项目登陆界面。
+Life of Vids +是一个风格独特的视频网站,有点类似博客风格,但确实提供了很多免费的视频,你可以在顶部搜索框中输入关键词搜索视频,也可以查看它的视频集合,集合中提供了多套视频素材,包括城市、自然、小镇、食物、办公等几个类别,你可以免费下载用在自己的视频中
+Videezy
+Videezy +是一个很全面的视频素材网站,视频和类别都非常全面,在它的分类中,不仅有像天空、自然、动物这样的分类,每个大分类下还有对应的分支,比如都市里面就有伦敦和纽约这样的城市分类,通过细致的分类,你可以快速找到需要的视频
+使用Videezy这样网站,不要看首页很多都是付费视频,按分类打开,里面大部分的视频素材都是免费的,可以找到很多优秀的视频
+Mazwai
-点击【登陆】后,会提示 "登陆成功" 表示已经成功登陆项目了。
+Mazwai是一个完全免费的视频素材库,包括各种类型的视频,其创建的目的就是让全世界的人都能免费获得视频素材,所有的视频都是网站精心挑选,并且得到作者允许,可以放心使用
+参考
+ +]]>PPT
+使用 PPT 制作,合理使用路径动画、动画效果,然后导出视屏。
--复制本地目录时需注意:
-目录的最后一级不能有 号
+缺点:
++
- 只能整个导出,不能导出当前页
+- 不有丰富的素材库
+
上传设计文件
-提交校审
-校审的主要流程下图所示:
+在线 MG 动画制作网站
+除了 PPT,我们还可以使用一些在线的 MG +动画制作网站来制作,但是这类型的网站一般都是收费的,下面列出一些推荐使用的网站及免费使用的方法。
+秀展网
+网址:https://www.xiuzhan365.com/
]]>在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
+方法,并在此处监听 OnSelectionChanged
+事件,从事件参数中可以获取 Action
,当 Action
+为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
+时,就代表双击的元素。具体代码如下:
// 该类继承 Bentley.MstnPlatformNET.AddIn |
++]]>程序使用了 COM 接口,所以需要的引入 +Bentley.MicroStation.dll,COM接口位于 +Bentley.MstnPlatformNET.InteropServices 命名空间中。
+
ElementChangedEventHander
事件。
+
+事件有一个
+ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
获取操作
+获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
+来获取,它的值如下:
public enum ChangeTrackKind |
获取新元素
+属性 NewElement
代表新元素。
获取旧元素
+参考
+ +]]>在理解 MS 中各个对象返回的 DTransform -含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
- -DPlane3d
-public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld -的逆。
-DTransform3d
-通过 DTransform3d 生成的矩阵在变换时,直接使用。
-比如下面这个方法:
-// origin 代表的是平移值 |
上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
-]]>在理解 MS 中各个对象返回的 DTransform +含义时,先弄明白谁是度量矩阵,另一个是它的逆,就很好理解了。
+ +DPlane3d
+public bool GetTransforms(out DTransform3d planeToWorld, out DTransform3d worldToPlane)
planeToWorld 是 Plane 坐标系的度量矩阵,worldToPlane 是 planeToWorld +的逆。
+DTransform3d
+通过 DTransform3d 生成的矩阵在变换时,直接使用。
+比如下面这个方法:
+// origin 代表的是平移值 |
上述静态通过局部坐标系(原点和三个方向)来生成一个矩阵,这个矩阵其实是该坐标系度量矩阵的逆,所以如果想要将模型变换到该坐标系下,直接左乘该矩阵即可。
+]]>在继承自 Bentley.MstnPlatformNET.AddIn 的类中,重写 Run
-方法,并在此处监听 OnSelectionChanged
-事件,从事件参数中可以获取 Action
,当 Action
-为 SelectionChangedEventArgs.ActionKind.DoubleClickElement
-时,就代表双击的元素。具体代码如下:
// 该类继承 Bentley.MstnPlatformNET.AddIn |
--]]>程序使用了 COM 接口,所以需要的引入 -Bentley.MicroStation.dll,COM接口位于 -Bentley.MstnPlatformNET.InteropServices 命名空间中。
-
ElementChangedEventHander
事件。
-
-事件有一个
-ElementChangedEventArgs
,从这个参数中可以获取需要的信息。
获取操作
-获取是什么操作导致元素被修改,可以通过 ChangeTrackKind
-来获取,它的值如下:
public enum ChangeTrackKind |
获取新元素
-属性 NewElement
代表新元素。
获取旧元素
-参考
- -]]>RequestClose
),则
WindowConductor
将处理此操作。类似地,如果用户自己关闭窗口,WindowConductor
将询问
ViewModel 是否准备关闭。
-]]>
- BindableCollection<T>
是 ObservableCollection<T>
-的一个子类。如果你在你的 ViewModel
-中有一个集合,并且想要将它用作你视图中的某个控件的
-ItemsSource
-等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
而且,它增加了一些有用的额外功能:
--
-
新增
AddRange
、RemoveRange
和Refresh
方法
-是线程安全的
-
新方法
-ObservableCollection<T>
缺少两个非常有用的方法:
-AddRange
和 RemoveRange
。
它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
-collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
-和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
刷新
方法很方便。
它不会以任何方式修改集合,但会触发 PropertyChanged
和
-CollectionChanged
事件,向任何 UI
-元素表明集合已被修改,它们应该重新加载数据。
这不是经常需要的,但当它真的有需要的时候。
-线程安全(Thead Safety)
-线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
-线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
-
这些操作是同步的:被调用的方法在操作完成之前不会返回。
-它们是自由的,如果你已经在 UI -线程,操作将在这种情况下同步进行。
-所有
PropertyChanged
和 -CollectionChanged
事件总是在 UI 线程上引发。
-
这最后一点意味着与 PropertyChagedBase
有
-PropertyChangedDispatcher
-不同,BindableCollection < T >
上是没有
-PropertyChangedDispatcher
属性的——事件总是在 UI
-线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
-CollectionChangedDispatcher
概念。
public async Task<IEnumerable<string>> ValidatePropertyAsync(string propertyName) |
现在,返回 result.Errors…
行将运行在另一个线程(而不是发布到 UI 线程),没有死锁发生。
BindableCollection<T>
是 ObservableCollection<T>
+的一个子类。如果你在你的 ViewModel
+中有一个集合,并且想要将它用作你视图中的某个控件的
+ItemsSource
+等等,那么你就可以使用这个类(当一个项目被添加到/从集合中移除时,视图会得到通知)。
而且,它增加了一些有用的额外功能:
+-
+
新增
AddRange
、RemoveRange
和Refresh
方法
+是线程安全的
+
新方法
+ObservableCollection<T>
缺少两个非常有用的方法:
+AddRange
和 RemoveRange
。
它们的作用与您的预期相差无几,允许您立即添加/移除范围内的元素,而无需手动遍历每个元素,并在每个元素添加时调用
+collection.Add (element)
(这使得触发大量的元素添加事件)。AddRange
+和 RemoveRange
只会在每个范围增加/删除时引发一组事件。
刷新
方法很方便。
它不会以任何方式修改集合,但会触发 PropertyChanged
和
+CollectionChanged
事件,向任何 UI
+元素表明集合已被修改,它们应该重新加载数据。
这不是经常需要的,但当它真的有需要的时候。
+线程安全(Thead Safety)
+线程安全是通过将所有操作 (添加、删除、清除、重置等) 分派给 UI
+线程来实现的。分派使用Execute.OnUIThreadSync
,意思是:
-
+
这些操作是同步的:被调用的方法在操作完成之前不会返回。
+它们是自由的,如果你已经在 UI +线程,操作将在这种情况下同步进行。
+所有
PropertyChanged
和 +CollectionChanged
事件总是在 UI 线程上引发。
+
这最后一点意味着与 PropertyChagedBase
有
+PropertyChangedDispatcher
+不同,BindableCollection < T >
上是没有
+PropertyChangedDispatcher
属性的——事件总是在 UI
+线程上,因为操作的属性与总是在 UI 线程上执行,所以,也没有
+CollectionChangedDispatcher
概念。
因此,如果委托给它有一个target
,且有
CompilerGenerated
属性,BindWeak
将抛出一个异常。
有时候,查看 Stylet +在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
+值得庆幸的是,Stylet +可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
+ +快速启动
+要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
+protected override void OnStart() |
这将把日志消息打印到 Visual Studio
+的输出窗口。在内部,默认的日志记录器使用
+Trace.WriteLine
。
定制日志
+当然,您可以向 Stylet 提供自己的日志记录器,Stylet +将使用它来打印日志消息。
+首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
public class MyLogger : Stylet.Logging.ILogger |
然后,配置 LogManager +来使用它。与之前一样,在你的Bootstrapper的配置方法:
+protected override void OnStart() |
在应用程序中进行日志记录(Logging +within your Application)
+我建议不要用 Stylet.Logging +在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让 +Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
+NLog 和 log4net +是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑 +Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接 +NLog、log4net或其他框架。
]]>IViewManager
实现),这意味着运行引导程序,这让我们可以做真正危险的事情。最好避免。
-]]>
- 有时候,查看 Stylet -在幕后做了什么是很有用的,特别是当它没有做一些你期望它做的事情,或者做一些意想不到的事情的时候。
-值得庆幸的是,Stylet -可以很容易地配置来生成日志输出,因此您可以了解它在做什么。
- -快速启动
-要快速启用日志记录,请在Bootstrapper的配置方法中放入以下内容:
-protected override void OnStart() |
这将把日志消息打印到 Visual Studio
-的输出窗口。在内部,默认的日志记录器使用
-Trace.WriteLine
。
定制日志
-当然,您可以向 Stylet 提供自己的日志记录器,Stylet -将使用它来打印日志消息。
-首先,定义一个实现 Stylet.Logging.ILogger
接口的类:
public class MyLogger : Stylet.Logging.ILogger |
然后,配置 LogManager -来使用它。与之前一样,在你的Bootstrapper的配置方法:
-protected override void OnStart() |
在应用程序中进行日志记录(Logging -within your Application)
-我建议不要用 Stylet.Logging -在其他地方进行日志记录。它是非常轻量级的,几乎没有任何特性——编写它的唯一原因是为了让 -Stylet 不依赖于日志框架来支持一个几乎永远不会被使用的特性。
-NLog 和 log4net -是两个主要的c#日志记录框架。如果您不想将您的应用程序与任何特定的日志记录框架耦合,那么可以考虑 -Common.Logging,它提供了一个与框架无关的接口,在这个接口后面可以连接 -NLog、log4net或其他框架。
]]>// 读取程序中嵌入的文件 |
// 用于for循环中,最大值溢出时返回到开始 |
// 读取程序中嵌入的文件 |
// 用于for循环中,最大值溢出时返回到开始 |
Eggjs 官方方法
+async index() { |
支持进度条和剩余时间(Content-Length)
+为了支持进度条,需要在 HTTP 返回头里设置
+Content-Length
const fs = require('fs') |
分段下载
+未完成。
+参考
+-
+
- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js +
- eggjs怎么实现文件下载? +
Eggjs 官方方法
-async index() { |
支持进度条和剩余时间(Content-Length)
-为了支持进度条,需要在 HTTP 返回头里设置
-Content-Length
const fs = require('fs') |
分段下载
-未完成。
-参考
--
-
- https://github.com/eggjs/examples/blob/master/download/app/controller/index.js -
- eggjs怎么实现文件下载? -
代码复现:
+const arr = [] |
// 结果 |
我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
+// 期望结果 |
那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
+]]>代码复现:
-const arr = [] |
// 结果 |
我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:
-// 期望结果 |
那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。
-]]>安装
-npm install -g nrm |
使用
-查看可用源列表:
-nrm ls |
--结果中带 * 号的为当前使用的源
-
快速切换:
-nrm use xxx |
增加镜像源:
-如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
-reigstry
为源名,url
为源的路径。
nrm add <registry> <url> |
删除:
-nrm del <registry> |
测试某个源的速度:
-nrm test xxx |
安装
+npm install -g nrm |
使用
+查看可用源列表:
+nrm ls |
++结果中带 * 号的为当前使用的源
+
快速切换:
+nrm use xxx |
增加镜像源:
+如果我们需要增加特定的源,比如自己的私有源,可以执行以下命令进行添加,其中
+reigstry
为源名,url
为源的路径。
nrm add <registry> <url> |
删除:
+nrm del <registry> |
测试某个源的速度:
+nrm test xxx |
添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
+npm adduser --registry https://mydomain.com:port/ |
授权验证
+i18n
+发布包
+npm publish --registry https://mydomain.com:port/ |
参考
+ +]]>npm 私有仓库
+npm 私有仓库的好处
+-
+
安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
+模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
+npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node +包的同时,将关联的依赖包缓存到 npm +私有仓库服务器中,下载速度更快;
+项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
+公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
+版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
+开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
+
npm 私有仓库的原理
+ +用户 install 后向私有 npm +发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是 +npm 仓库,也可以是淘宝镜像。
+常用的仓库地址
+-
+
- npm —— https://registry.npmjs.org +
- cnpm —— http://r.cnpmjs.org +
- taobao —— https://registry.npm.taobao.org +
- nj —— https://registry.nodejitsu.com +
- rednpm —— http://registry.mirror.cqupt.edu.cn +
- npmMirror —— https://skimdb.npmjs.com/registry +
- edunpm —— http://registry.enpmjs.org +
windows server环境
+-
+
- windows server 2022 +
- 宝塔面板 +
配置nginx
+server { |
无法加载 venders 等静态文件
+按照官方教程配置完成后,在 ngnix 配置 +https,然后通过域名(https://mydomain.com:4433)访问 verdaccio +时,一直是空白。
+F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
+等文件是失败的,查看其 headers,发现其请求的 url 是
+https://mydomain.com/-/xx
, 端口莫名丢掉了。
造成这种问题的原因是,在nginx的配置中,少了
+location ~ ^/verdaccio/(.*)$ ... |
这项配置。
+参考
+本文主要参考以下,在此报以诚挚感谢!
+ +]]>添加用户是通过终端电脑的npm来操作的,在输入下列命令后,根据要求输入用户名和密码即可。
-npm adduser --registry https://mydomain.com:port/ |
授权验证
-i18n
-发布包
-npm publish --registry https://mydomain.com:port/ |
参考
- -]]>npm 私有仓库
-npm 私有仓库的好处
--
-
安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
-模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
-npm 包下载速度角度考虑:使用内部的地址,能够在开发下载 node -包的同时,将关联的依赖包缓存到 npm -私有仓库服务器中,下载速度更快;
-项目开发中的路劲角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
-公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
-版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
-开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率.
-
npm 私有仓库的原理
- -用户 install 后向私有 npm -发起请求,服务器会先查询所请求的这个模块是否是我们自己的私有模块或已经缓存过的公共模块,如果是则直接返回给用户;如果请求的是一个还没有被缓存的公共模块,那么则会向上游源请求模块并进行缓存后返回给用户。上游的源可以是 -npm 仓库,也可以是淘宝镜像。
-常用的仓库地址
--
-
- npm —— https://registry.npmjs.org -
- cnpm —— http://r.cnpmjs.org -
- taobao —— https://registry.npm.taobao.org -
- nj —— https://registry.nodejitsu.com -
- rednpm —— http://registry.mirror.cqupt.edu.cn -
- npmMirror —— https://skimdb.npmjs.com/registry -
- edunpm —— http://registry.enpmjs.org -
windows server环境
--
-
- windows server 2022 -
- 宝塔面板 -
配置nginx
-server { |
无法加载 venders 等静态文件
-按照官方教程配置完成后,在 ngnix 配置 -https,然后通过域名(https://mydomain.com:4433)访问 verdaccio -时,一直是空白。
-F12打开调试面板,查看网络项,发现读取 runtime, vendors, main
-等文件是失败的,查看其 headers,发现其请求的 url 是
-https://mydomain.com/-/xx
, 端口莫名丢掉了。
造成这种问题的原因是,在nginx的配置中,少了
-location ~ ^/verdaccio/(.*)$ ... |
这项配置。
-参考
-本文主要参考以下,在此报以诚挚感谢!
- -]]>CurveVector curve; |
CurveVector curve; |
BsonIgnoreExtraElements
特性,即可解决。
-
-正文
-假设有如下 mongodb 数据:
-[ |
数据库对应的类的定义为:
-[BsonIgnoreExtraElements] |
为了使 mongodb 在映射到 Person
时不报错,要在
-Person
上添加 [BsonIgnoreExtraElements]
-特性。
--BsonIgnoreExtraElements 位于命名空间 -MongoDB.Bson.Serialization.Attributes 中
-
这种方式有个弊端,如果要在每一个类上添加
-[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
有没有办法将 BsonIgnoreExtraElements
-应用于所有的类呢?
当然有,其方法如下,只需要在初始化 MongoClient
-之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
// mongodb 全局设置 |
--ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions -中
-
-
-
IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户 -Collection -中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
-IgnoreIfNullConvention:如果字段 -
null
,则不存这个字段,简单来说就是省空间,假设一个类中有 -A,B
两个字段,其中A
-字段为空,如果指定该设置,存为{B:'B'}
,否则,存为 -{A:null, B:'B'}
。
-
参考
- -]]>BsonIgnoreExtraElements
特性,即可解决。
+
+正文
+假设有如下 mongodb 数据:
+[ |
数据库对应的类的定义为:
+[BsonIgnoreExtraElements] |
为了使 mongodb 在映射到 Person
时不报错,要在
+Person
上添加 [BsonIgnoreExtraElements]
+特性。
++BsonIgnoreExtraElements 位于命名空间 +MongoDB.Bson.Serialization.Attributes 中
+
这种方式有个弊端,如果要在每一个类上添加
+[BsonIgnoreExtraElements]
,那写代码时简直难受,且代码侵入性很大。
有没有办法将 BsonIgnoreExtraElements
+应用于所有的类呢?
当然有,其方法如下,只需要在初始化 MongoClient
+之前运行一次如下代码即可。该设置是单例的,下次初始化时就不需要运行了。
// mongodb 全局设置 |
++ConventionPack 位于命名空间 MongoDB.Bson.Serialization.Conventions +中
+
-
+
IgnoreExtraElementsConvention:忽略库中有但是类中没有定义的字段。这个一般用于敏感字段处理,例如密码字段,它会存在用户 +Collection +中,但是这个字段只是登录校验的时候会用到(这时可以用js来查询),其他用户查询(linq查询)基本都不需要用到密码字段。
+IgnoreIfNullConvention:如果字段 +
null
,则不存这个字段,简单来说就是省空间,假设一个类中有 +A,B
两个字段,其中A
+字段为空,如果指定该设置,存为{B:'B'}
,否则,存为 +{A:null, B:'B'}
。
+
参考
+ +]]>到目前为止,vue3 中的 setup
-本身不能是异步函数,因此我们如果需要使用 async
-函数,要将异步操作包装起来。可以通过以下方式实现:
方法一:使用 suspense
-使用suspense 包裹你的组件,然后使用
-async setup()
。这种方式目前为实验性功能,不稳定。
<Suspense> |
方法二:使用生命周期钩子
-可以在生命周期钩子中调用异步方法:
-<script> |
方法三:将调用包裹在异步函数中
-该方法与 方法二 原理相同:
-<template> |
参考
-本文参考了以下文章,在此报以诚挚谢意!
- -]]>-
-
- 组件间的父子之间的传值 -
- 组件间的子父之间的传值 -
- 非组件间的组件间的传值(简称:EventBus) -
- sessionStorage 缓存传值 -
- 路由带参数跳转进行传值 -
- vuex 进行传值 -
组件间的父子之间的传值
-思路:父组件调用子组件 dom -位置声明一个名称,然后在子组件接收这名称,便可直接调用。
--
-
- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件): -
-
-
- 子组件: -
组件间的子父之间的传值
-思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
--
-
- 子组件: -
-
-
- 父组件: -
非组件间的组件间的传值(简称:EventBus)
-先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器 -(eventBus.js) 让其他房子接收到信号(组件B)
-思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
-import Vue from 'vue' |
-
-
- 组件A: -
-
-
- 组件 B: -
效果展示如下:
- - -sessionStorage 缓存
--
-
- 组件 A: -
-
-
- 组件 B: -
路由带参数跳转
--
-
- 组件 A:有路由默认的页面 -
-
-
- 组件 B:路由其他页面 children -
效果如下:
- - -vuex -主要做数据交互,维护公共状态或数据
-官方网站:Vuex
-多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
- -src下创建一个store的文件夹,里面创建index.js文件
-import Vue from 'vue' |
某文件触发事件
-methods: { |
展示页面
-<h1>{{this.$store.state.city}}</h1> |
致谢
-本文摘抄至:vue通信及组件之间传值
-]]>本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
-当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
-最后,再次感谢 answershuto 的 learnVue。
-]]>到目前为止,vue3 中的 setup
+本身不能是异步函数,因此我们如果需要使用 async
+函数,要将异步操作包装起来。可以通过以下方式实现:
PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-后面才发现,基于Vue的Quasar Framework 介绍 -这个框架UI组件很全面,准备下次使用这个框架了
-基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
-quasarframework/quasar: Quasar Framework -https://github.com/quasarframework/quasar
-Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建: -响应式网站 PWA(Progressive Web App) 通过Apache -Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron) -Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile -App和Electron -App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar -Web组件。
-当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
--
1、 iView UI组件库
-iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC -界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue -UI组件框架。iView生态也做得很好,还有开源了一个iView -Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。 -iView官网:https://www.iviewui.com/
-2、Vux UI组件库
-Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。 -Vux官网:https://vux.li/
-3、Element UI组件库
-Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 -的桌面端组件库。Element是饿了么前端开源维护的Vue -UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue -UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
-4、Mint UI组件库
-Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint -UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint -UI 采用 CSS3 -处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint -UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint -UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。 -Mint UI官网:http://mint-ui.github.io/#!/zh-cn
-5、Bootstrap-Vue UI组件库
-Bootstrap-VUE提供了基于vue2的Bootstrap -V4组件和网格系统的实现,完成了广泛和自动化的WAI -ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3 -相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时 -Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS -6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7 -以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。 -Bootstrap-Vue官网:https://bootstrap-vue.js.org/
-6、Ant Design Vue UI组件库
-Ant Design Vue是 Ant Design 3.X 的 Vue -实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant -Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design -Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of -React的组件,支持现代浏览器和 IE9 及以上(需要 -polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant -Design -Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
-7、AT-UI UI组件库
-AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC -网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI -更加精简,实现了后台常用的组件。 -AT_UI官网:https://at-ui.github.io/at-ui/#/zh
-8、Vant UI组件库
-Vant是一个轻量、可靠的移动端 Vue -组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp -是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的 -API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+ -个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList -地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon -优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku -商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。 -Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
-9、cube-ui UI组件库
-cube-ui 是基于 Vue.js -实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。 -cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
-10、Muse-UI UI组件库
-Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI -拥有40多个UI 组件,用于适应不同业务环境。Muse UI -仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用 -Muse-UI官网:https://muse-ui.org/#/zh-CN
-11、N3-components UI组件库
-N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件 -组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。 -N3官网:https://n3-components.github.io/N3-components/component.html
-12、Mand Mobile
-Mand -Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand -Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。 -Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
-下面是1.x的文档和演示地址:(文档地址已经迁移了)
-https://mand-mobile.github.io/1x-doc/ -https://mand-mobile.github.io/2x-doc/
-之前的地址打不开了
-13、we-vue UI组件库
-we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css -样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+ -个组件,单元测试覆盖率超 98%,支持 -babel-plugin-import,完善的在线文档,详细的在线示例。 -we-vue官网:https://wevue.org/
-14、veui UI组件库
-veui是一个由百度EFE -team开发的Vue企业级UI组件库。目前文档还没有,只有demo。 -GitHub上说是正在进行的一项工作。那我们就耐心等待吧。 -veui官网:https://ecomfe.github.io/veui/components/#/
-15、Semantic-UI-Vue UI组件库
-Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。 -Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于 -Semantic-UI 的 API 以及一组可定制的主题。 -Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/ -在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
-16.Vue.js -Material Component Framework — Vuetify.js
- -Vuetify完全根据Material -Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
-这个主要是国外比较流行的vue -ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
-PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
-致谢
-本文摘至:16款优秀的Vue -UI组件库推荐
+方法一:使用 suspense
+使用suspense 包裹你的组件,然后使用
+async setup()
。这种方式目前为实验性功能,不稳定。
<Suspense> |
方法二:使用生命周期钩子
+可以在生命周期钩子中调用异步方法:
+<script> |
方法三:将调用包裹在异步函数中
+该方法与 方法二 原理相同:
+<template> |
参考
+本文参考了以下文章,在此报以诚挚谢意!
+ ]]>PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+后面才发现,基于Vue的Quasar Framework 介绍 +这个框架UI组件很全面,准备下次使用这个框架了
+基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/
+quasarframework/quasar: Quasar Framework +https://github.com/quasarframework/quasar
+Quasar(发音为/kweɪ.zɑɹ/)是MIT许可的开源框架(基于Vue),可帮助Web开发人员创建: +响应式网站 PWA(Progressive Web App) 通过Apache +Cordova构建移动APP(Android,iOS,…) 多平台桌面应用程序(使用Electron) +Quasar允许开发人员编写一次代码,然后使用相同的代码库同时部署为网站、PWA、Mobile +App和Electron +App。使用最先进的CLI设计应用程序,并提供精心编写,速度非常快的Quasar +Web组件。
+当使用Quasar时,你不需要像Hammerjs,Momentjs或Bootstrap这样的额外重型库。它拥有这些功能,而且体积很小!
++
1、 iView UI组件库
+iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC +界面的中后台产品。iView的组件还是比较齐全的,更新也很快,文档写得很详细。有公司团队维护,比较可靠的Vue +UI组件框架。iView生态也做得很好,还有开源了一个iView +Admin,做后台非常方便。官网上介绍,iView已经应用在TalkingData、阿里巴巴、百度、腾讯、今日头条、京东、滴滴出行、美团、新浪、联想等大型公司的产品中。 +iView官网:https://www.iviewui.com/
+2、Vux UI组件库
+Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。 +Vux官网:https://vux.li/
+3、Element UI组件库
+Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 +的桌面端组件库。Element是饿了么前端开源维护的Vue +UI组件库,更新频率还是很高的,基本一周到半个月都会发布一个新版本。组件齐全,基本涵盖后台所需的所有组件,文档讲解详细,例子也很丰富。没有实际使用过,网上的Element教程和文章比较多。Element应该是一个质量比较高的Vue +UI组件库。 Element官网:http://element.eleme.io/#/zh-CN
+4、Mint UI组件库
+Mint UI基于 Vue.js 的移动端组件库,同样出自饿了么前端的项目。Mint +UI是真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件。Mint +UI 采用 CSS3 +处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。网上的视频教程很多都是基于Mint +UI来讲的,开发移动端web项目还是很方便,文档也很简介明了。很多页面Mint +UI组件都已经封装好,基本可以照着例子写,简单的调整一下就可以实现。不过,在GitHub上看最后一次代码提交在2018年1月16日。不知道是项目比较稳定没有更新,还是项目有被废弃的可能。 +Mint UI官网:http://mint-ui.github.io/#!/zh-cn
+5、Bootstrap-Vue UI组件库
+Bootstrap-VUE提供了基于vue2的Bootstrap +V4组件和网格系统的实现,完成了广泛和自动化的WAI +ARA可访问性标记。Bootstrap 4是最新发布的版本,与 Bootstrap3 +相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时 +Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS +6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7 +以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。 +Bootstrap-Vue官网:https://bootstrap-vue.js.org/
+6、Ant Design Vue UI组件库
+Ant Design Vue是 Ant Design 3.X 的 Vue +实现,开发和服务于企业级后台产品。在GitHub上可以找到几个Ant +Design的Vue组件。不过相比较而言,Ant Design Vue更胜一筹。Ant Design +Vue共享Ant Design of React设计工具体系,实现了所有Ant Design of +React的组件,支持现代浏览器和 IE9 及以上(需要 +polyfills)。可以让熟悉Ant Design的在使用Vue时,很容易的上手。 Ant +Design +Vue官网:https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/
+7、AT-UI UI组件库
+AT-UI 是一款基于 Vue.js 2.0 的前端 UI 组件库,主要用于快速开发 PC +网站中后台产品,支持现代浏览器和 IE9 及以上。AT-UI +更加精简,实现了后台常用的组件。 +AT_UI官网:https://at-ui.github.io/at-ui/#/zh
+8、Vant UI组件库
+Vant是一个轻量、可靠的移动端 Vue +组件库。Vant是有赞团队开源的,主要维护也是有赞团队。Vant Weapp +是有赞移动端组件库 Vant 的小程序版本,两者基于相同的视觉规范,提供一致的 +API 接口,助力开发者快速搭建小程序应用。截止到目前,Vant已经开源了50+ +个经过有赞线上业务检验的组件。比如:、AddressEdit 地址编辑、AddressList +地址列表、Area 省市区选择、Card 卡片、Contact 联系人、Coupon +优惠券、GoodsAction 商品页行动点、SubmitBar 提交订单栏、Sku +商品规格弹层。如果做商城的,不太在意界面,实现业务逻辑的话,用Vant组件库开发还是很快的。 +Vant官网:https://youzan.github.io/vant/#/zh-CN/intro
+9、cube-ui UI组件库
+cube-ui 是基于 Vue.js +实现的精致移动端组件库。由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。在交互体验方面追求极致。遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。支持按需引入和后编译,轻量灵活;扩展性强,可以方便地基于现有组件实现二次开发。 +cube-ui官网:https://didi.github.io/cube-ui/#/zh-CN
+10、Muse-UI UI组件库
+Muse-UI基于 Vue 2.0 优雅的 Material Design UI 组件库。Muse UI +拥有40多个UI 组件,用于适应不同业务环境。Muse UI +仅需少量代码即可完成主题样式替换。Muse UI 可用于开发的复杂单页应用 +Muse-UI官网:https://muse-ui.org/#/zh-CN
+11、N3-components UI组件库
+N3组件库是基于Vue.js构建的,让前端工程师和全栈工程师能快速构建页面和应用。N3-components超过60个组件 +组件列表、自定义样式、支持多种模化范式(UMD)、使用ES6进行开发。 +N3官网:https://n3-components.github.io/N3-components/component.html
+12、Mand Mobile
+Mand +Mobile是面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。Mand +Mobile含有丰富的组件30+的基础组件,覆盖金融场景,极高的易用性组件均有详细说明文档、案例演示,汲取最前沿技术,组件化轻量化实现,兼顾稳定和品质,努力实现金融场景的全覆盖。 +Mand Mobile官网:https://didi.github.io/mand-mobile/#/zh-CN/home
+下面是1.x的文档和演示地址:(文档地址已经迁移了)
+https://mand-mobile.github.io/1x-doc/ +https://mand-mobile.github.io/2x-doc/
+之前的地址打不开了
+13、we-vue UI组件库
+we-vue 是一套基于 Vue.js 的移动关组件库,结合 weui.css +样式库,封装了一系列组件,非常适于微信公众号等移动端开发。we-vue 包含35+ +个组件,单元测试覆盖率超 98%,支持 +babel-plugin-import,完善的在线文档,详细的在线示例。 +we-vue官网:https://wevue.org/
+14、veui UI组件库
+veui是一个由百度EFE +team开发的Vue企业级UI组件库。目前文档还没有,只有demo。 +GitHub上说是正在进行的一项工作。那我们就耐心等待吧。 +veui官网:https://ecomfe.github.io/veui/components/#/
+15、Semantic-UI-Vue UI组件库
+Semantic-UI-Vue是基于 Vue.js对Semantic-UI 框架的实现。 +Semantic作为一款开发框架,帮助开发者使用对人类友好的HTML语言构建优雅的响应式布局。Semantic-UI-Vue提供了一个类似于 +Semantic-UI 的 API 以及一组可定制的主题。 +Semantic-UI-Vue官网:https://semantic-ui-vue.github.io/#/ +在选择框架的时候一定要根据实际Web开发情况和团队的熟悉程度来选择。一个好的UI组件库对一个Web项目来说很重要
+16.Vue.js +Material Component Framework — Vuetify.js
+ +Vuetify完全根据Material +Design规范开发。每个组件都是手工制作的,为您的下一个伟大的应用程序带来最好的UI工具。开发并没有停留在Google规范中的核心组件上。通过社区成员和赞助商的支持,更多的组件将被设计并提供给大家享受。
+这个主要是国外比较流行的vue +ui组件,各种功能都有,有中文翻译的,但有些还是英文的,翻译得不是很好
+PS:国内的UI组件大部分都只有一部分的,常用的头部导航,底部导航,listview,grid表格很多都是没有的。
+致谢
+本文摘至:16款优秀的Vue +UI组件库推荐
+]]>-
+
- 组件间的父子之间的传值 +
- 组件间的子父之间的传值 +
- 非组件间的组件间的传值(简称:EventBus) +
- sessionStorage 缓存传值 +
- 路由带参数跳转进行传值 +
- vuex 进行传值 +
组件间的父子之间的传值
+思路:父组件调用子组件 dom +位置声明一个名称,然后在子组件接收这名称,便可直接调用。
+-
+
- 父组件(谁是父组件个人理解:谁引用谁的组件,谁就是父组件): +
-
+
- 子组件: +
组件间的子父之间的传值
+思路:在子组件通过触发一个事件带值,让父组件接受这个事件,解析这个值
+-
+
- 子组件: +
-
+
- 父组件: +
非组件间的组件间的传值(简称:EventBus)
+先用例子来解释下组件间的关联:组件 A 比作一个路由器,通过中继器 +(eventBus.js) 让其他房子接收到信号(组件B)
+思路:首先在src目录下创建一个eventBus.js文件,复制这行代码进去
+import Vue from 'vue' |
-
+
- 组件A: +
-
+
- 组件 B: +
效果展示如下:
+ + +sessionStorage 缓存
+-
+
- 组件 A: +
-
+
- 组件 B: +
路由带参数跳转
+-
+
- 组件 A:有路由默认的页面 +
-
+
- 组件 B:路由其他页面 children +
效果如下:
+ + +vuex +主要做数据交互,维护公共状态或数据
+官方网站:Vuex
+多看几遍这图,vuex 基本就会使用,多加运用就会更加熟练。
+ +src下创建一个store的文件夹,里面创建index.js文件
+import Vue from 'vue' |
某文件触发事件
+methods: { |
展示页面
+<h1>{{this.$store.state.city}}</h1> |
致谢
+本文摘抄至:vue通信及组件之间传值
+]]>本文记录了在学习过程中的一些个人见解,同时,对于以前未涉及的知识点作一个总结和记录,以便今后回顾,如果也有小白恰好看到了这篇文章,希望也能帮到你,节省一些查找资料的时间。
+当然,我所理解的可能会存在偏差,欢迎提留言指出,共同学习,共同进步。
+最后,再次感谢 answershuto 的 learnVue。
+]]>