Loading

随笔分类 -  C#

摘要:词云”由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于2006年最先使用,是通过形成“关键词云层”或“关键词渲染”,对文本中出现频率较高的“关键词”的视觉上的突出。词云图过滤掉大量的文本信息,使浏览者只要一眼扫过文本就可以领略文本的主旨。 网上大部分文章介绍的是使用Python的jieba、wordcloud的库生成词云图,本文则介绍如何使用jieba.NET、WordCloudSharp库的.NEI版本生成词云图。 阅读全文
posted @ 2021-07-24 16:39 二次元攻城狮 阅读(2768) 评论(6) 推荐(15)
摘要:通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api/trans/vip/translate,使用方法参考通用翻译API接入文档 。 请求方式可使用 GET 或 POST 方式(Content-Type 请指定为:application/x-www-form-urlencoded),字符编码统一采用 UTF-8 编码格式,单次请求长度控制在 6000 bytes以内(汉字约为输入参数 2000 个)。 API返回的结果是json格式,需要反序列为对象实例后再进行处理。为了减少第三方库的依赖,反序列化使用.NET自带的DataContractJsonSerializer。 阅读全文
posted @ 2021-06-26 17:47 二次元攻城狮 阅读(955) 评论(5) 推荐(0)
摘要:事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 EventBus维护一个事件的字典,发布者、订阅者在事件总线中获取事件实例并执行发布、订阅操作,事件实例负责维护、执行事件处理程序。 阅读全文
posted @ 2021-05-11 23:46 二次元攻城狮 阅读(3523) 评论(14) 推荐(10)
摘要:一般事件的处理程序都放在界面后台,通过事件绑定可以把事件处理程序放在ViewModel中,实现界面和逻辑的解耦。 要使用事件绑定需要借助System.Windows.interactivity(安装了Blend就有),如果电脑上找不到,可以通过NuGet安装System.Windows.Interactivity.WPF。 阅读全文
posted @ 2021-05-08 01:18 二次元攻城狮 阅读(6232) 评论(4) 推荐(2)
摘要:WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类,还可以使用自定义命令。 自定义命令直接在命令目标上起作用,而不像RoutedCommand那样先在命令目标上激发出路由事件等外围控件捕捉到事件后再“翻过头来”对命令目标加以处理。 阅读全文
posted @ 2021-05-06 22:25 二次元攻城狮 阅读(1236) 评论(0) 推荐(1)
摘要:在使用自定义类型作为界面的数据源时,自定义类型需要自己实现INotifyPropertyChanged接口,一般会把INotifyPropertyChanged接口的实现放到一个基类中。 阅读全文
posted @ 2021-05-05 22:30 二次元攻城狮 阅读(1162) 评论(0) 推荐(3)
摘要:在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——NET的流行高性能JSON框架,当然也可以使用.NET自带的 System.Text.Json(.NET5)、DataContractJsonSerializer、JavaScriptSerializer(不推荐)。 阅读全文
posted @ 2021-04-25 19:59 二次元攻城狮 阅读(3354) 评论(0) 推荐(0)
摘要:XAML绘图本身就是矢量的,支持各式各样的填充和效果,还可以添加滤镜。 XAML矢量图是借助Microsoft Expression Studio中的Design和Blend两个工具画出来的。 动画本质就是在一个时间段内对象位置、角度、颜色、透明度等属性值的连续变化,有些是对象自身的属性,有些则是图形变形的属性。变化即是运动, WPF的动画也是一种运动,运动的主体就是各种UI元素,运动本身就是施加在UI元素上的一些Timeline派生类的实例。 阅读全文
posted @ 2021-03-30 19:47 二次元攻城狮 阅读(4297) 评论(1) 推荐(8)
摘要:WPF不但支持程序级的传统资源,同时还推出了独具特色的对象级资源,每个界面元素都可以携带自己的资源并可被自己的子级元素共享。 每个WPF界面元素都有一个名为Resource的属性,其类型为ResourceDictionary(继承至FrameworkElement类)。 ResourceDictionary能够以键值对的形式存储资源,当要使用到某个资源的时候,使用键值对的形式获取资源对象。 在保存资源时,ResourceDictionary视资源对象为Object类型,使用资源时先要对资源对象进行类型转换,XAML编译器能够根据Attribute自动识别资源类型(类型不对就会抛出异常),在C#中需要手动对资源对象进行类型转换。 阅读全文
posted @ 2021-03-07 22:02 二次元攻城狮 阅读(657) 评论(2) 推荐(2)
摘要:WPF的命令系统由几个基本要素构成:命令(Command)、命令源(Command Source)、命令目标(Command Target)、命令关联(Command Binding)。 基本元素之间的关系体现在使用命令的过程中,命令的使用大概分为如下几步:创建命令类、声明命令实例、指定命令的源、指定命令目标、设置命令关联。 阅读全文
posted @ 2021-03-06 18:18 二次元攻城狮 阅读(1154) 评论(0) 推荐(2)
摘要:事件的前身是消息(Message)。路由事件与直接事件的区别在于:直接事件激发时,发送者直接将消息通过事件订阅交送给事件响应者,事件响应者使用其事件处理器方法对事件的发生做出响应、驱动程序逻辑按客户需求运行;路由事件的事件拥有者和事件响应者之间则没有直接显式的订阅关系,事件的拥有者只负责激发事件,事件将由谁响应它并不知道,事件的响应者则安装有事件侦听器,针对某类事件进行侦听,当有此类事件传递至此时事件响应者就使用事件处理器来响应事件并决定事件是否可以继续传递。 阅读全文
posted @ 2021-02-23 23:56 二次元攻城狮 阅读(1873) 评论(0) 推荐(0)
摘要:.NET Framework中的属性又称为CLR属性(CLR,Common Language Runtime),既可以说CLR属性是private字段的安全访问包装(Get/Set方法),也可以说一个private字段在后台支持(back)一个CLR属性。 C#代码中的属性的编译结果是两个方法,再多实例方法也只有一个拷贝,CLR属性并不会增加内存的负担。属性仅仅是个语法糖衣(Syntax Sugar)。 阅读全文
posted @ 2021-02-22 22:25 二次元攻城狮 阅读(949) 评论(1) 推荐(0)
摘要:Windows GUI运行的机理是使用消息(Mesage)来驱使程序向前运行,消息的主要来源是用户的操作(如单击鼠标、按下按钮),消息又会被Windows翻译并送达目标程序然后被程序所处理。程序是被来自UI的事件(即封装过的消息)驱使问前的,简称“消息驱动”或“事件驱动”。因为消息和事件大都来自于UI,所以统称它们为“UI驱动程序”。使用“UI驱动程序”开发程序是“为了GUI而GUI”、单纯地为了实现程序的GUI化,已经背离了程序的本质一一数据加算法。 WPF作为一种专门的展示层技术,华丽的外观和动画只是它的表层现象。WPF引入了Data Binding概念以及与之配套的Dependency Property系统和DataTemplate,帮助程序员把思维的重心固定在了逻辑层、让展示层永远处于逻辑层的从属地位。 阅读全文
posted @ 2021-02-15 14:56 二次元攻城狮 阅读(1823) 评论(0) 推荐(1)
摘要:程序的本质是“数据+算法”——用户输入原始数据,算法处理原始数据并得到结果数据。程序可以使用LED阵列、格式字符串、图形化用户界面(Graphic User Interface,GUI)将结果数据显示给用户,其中图形化用户界面最方便、直观。 阅读全文
posted @ 2021-02-10 14:03 二次元攻城狮 阅读(1002) 评论(0) 推荐(0)
摘要:“x命名空间”的x是映射XML命名空间时给它取的名字(取XAML的首字母),里面的成员(如xClass、x:Name)是专门写给XAML编译器看、用来引导XAML编译器把XAML代码编译成CLR代码的。 x命名空间映射的是http://schemas.microsoft.com/winfx/2006/xaml,包含的类均与解析XAML语言相关,所以亦可称之为“XAML命名空间”。x命名空间里面的类能让程序员与XAML编译器沟通。 阅读全文
posted @ 2021-01-31 23:58 二次元攻城狮 阅读(773) 评论(1) 推荐(0)
摘要:XAML使用标签来定义Ul元素(UIElement),每个标签对应NET Framework类库中的一个控件类。通过设置标签的Atribute,不但可以对标签所对应控件对象的Property进行赋值,还可以做一些额外的事件(如声明命名空间、指定类名等)。 阅读全文
posted @ 2021-01-26 22:21 二次元攻城狮 阅读(1007) 评论(3) 推荐(1)
摘要:XAML是一种由XML派生而来的语言,很多XML中的概念在XAML是通用的,使用标签声明一个元素(每个元素对应内存中的一个对象)时需要使用起始标签和终止标签,夹在起始标签和终止标签中的XAML代码表示是隶属于这个标签的内容。如果没有什么内容隶属于某个标签,则这个标签称为空标签。 阅读全文
posted @ 2020-12-01 23:01 二次元攻城狮 阅读(536) 评论(2) 推荐(1)
摘要:根据网上的资料稍微修改了一下,原理很简单。 static void Main() { GlobalExceptionCapture(() => { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }); } 阅读全文
posted @ 2020-08-17 10:03 二次元攻城狮 阅读(627) 评论(0) 推荐(3)
摘要:使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。 在 C# 中,通过用方括号 ([]) 将特性名称括起来,并置于应用该特性的实体的声明上方以指定特性。 阅读全文
posted @ 2020-08-11 16:19 二次元攻城狮 阅读(1191) 评论(0) 推荐(1)
摘要:微软在.NET中对串口通讯进行了封装,我们可以在.net2.0及以上版本开发时直接使用SerialPort类对串口进行读写操作。 为操作方便,本文对SerialPort类做了一些封装,暂时取名为**SerialPortClient**。 阅读全文
posted @ 2020-07-30 14:42 二次元攻城狮 阅读(3494) 评论(0) 推荐(3)