- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 系统学习XAML语法
但有时候需要把同一个对象赋值给两个对象的属性,还有的时候需要给对象的属性赋一个null值,WPF甚至允许将一个对象的属性值依赖在其他对象的某个属性上。在下面的代码中,将使用Binding类的实例将TextBox的Text属性依赖在Slider的Value上,这样,当Slider的滑块滑动时TextBox就会显示Slider当前的值。尽管标记扩展的语法简洁方便,但并不是所有对象都能用标记扩展的语法来书写,只有MarkupExtension类的派生类(直接或间接均可)才能使用标记扩展语法来创建对象。
2023-10-18 11:23:17
317
原创 X名称空间详解
同时,为了能让程序员在编程层面上自由地操作这些数据类型,比如在不知道具体数据类型的情况下创建这个类型的实例并尝试调用它的方法,.NET Framework中还包含了名为Type的类作为所有数据类型在编程层面上的抽象。**在WPF中,几乎每个元素都有自己的Resources属性,这个属性是个“Key-Value”式的集合,只要把元素放进这个集合,这个元素就成为资源字典中的一个条目,当然,为了能够检索到这个条件,就必须为它添加x:Key。x名称空间中就包含有一些这样的类,所以常称它们为x名称空间内的标记扩展。
2023-10-17 11:41:11
215
原创 初识XAML
Q:XAML是什么?A:XAML是一种编程语言,全称是xtensible Application Markup Language,即可扩展应用程序标记语言。在WPF中,专门用于设计UI的语言。它是由XML派生来的。既然是一种语言,就需要学习它的语法,即规则、特性。一个简单的WPF程序包含以下四个部分:● Properties分支:里面的主要内容是程序要用到的一些资源(如图标、图片、静态的字符串)和配置信息。● References分支:标记了当前这个项目需要引用哪些其他的项目。
2023-10-08 11:25:09
250
原创 WPF之WHAT&WHY
数据模型:现实世界中事物和逻辑抽象 业务逻辑:数据模型之间的关系交互 用户界面:由控件构成的、与用户进行交互的界面,用于把数据展示给用户并响应用户的输入。、、 界面逻辑:控件与控制之间的关系与交互。 Windown Forms、ASP.NET是事件驱动。 WPF是数据驱动。 事件驱动时代,用户每进行一个操作用会激发程序发生一个事件,事件发生后,用于响应事件的事件处理器就会执行。事件处理器是一个方法(函数),在这个方法中,程序员可以处理数据或调用别的方法,这样,程序就在事件的驱动下向前执行了。可见,事件
2023-09-28 11:40:00
143
原创 HALCON 引擎学习一
HALCON与C#结合处理图象时,通常情况是将HALCON图像处理部分导出C#代码,然后执行。而HALCON提供了一种脚本执行算法的方式,该方式的优点是:1、不需要将HALCON图像处理部分导出成C#代码,否则每一次修改HALCON 时,C#相应部分就需要跟着更改,便捷性不足。2、脚本方式执行算法可降低内存泄漏。 ...
2022-02-18 15:20:07
4418
1
原创 使用命令符下载离线VS且可选择指定功能块
参考链接 //成功下载命令符例子 vs_community.exe --layout D:\vs2019-community-offline --lang zh-CN --add Microsoft.VisualStudio.Workload.CoreEditor;includeRecommended;includeOptional --add Microsoft.VisualStudio.Workload.ManagedDesktop;includeRecommended;includeOptional
2021-12-15 16:36:05
439
原创 WINFROM.PropertyGrid学习小结
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.ComponentModel.Design.Seriali
2021-11-25 17:08:21
220
原创 WINFORM.PropertyGrid学习(四)
有些属性可以弹出对话框如DataGridView中的 还有些属性是复杂下拉框,如DOCK 这些属性界面都可以自定义。参考文章如下: 参考文章一 参考文章二
2021-11-23 14:07:05
232
原创 WINFORM.PropertyGrid学习(三)
简单下拉框显示 public class FileNameConverter : Int32Converter { public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } public override StandardValuesCollection GetStandard
2021-11-23 14:00:27
177
原创 WINFORM.PropertyGrid学习(二)
WINFORM.PropertyGrid学习(一)中只列出了简单的效果,且控件中只有简单的属性。如果控件中需要显示像Size、Font、Color等复杂的自定义属性该如何实现呢?此时需要一个转换器,将自定义的类型,转换成PropertyGrid可以显示的类型。 ///自定义转换器类,派生于TypeConverter public class MyPointConverter : TypeConverter { public override bool CanConvertFrom(I
2021-11-23 13:50:29
397
原创 WINFROM.PropertyGrid学习(一)
更改属性的显示方式 要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了其中的一部分: DescriptionAttribute - 设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。可以将此特性应用于 MaxRepeatRate 属性。 CategoryAttribute - 设置属性在网格中所属的类别。当您需要将属性按类别名称分
2021-11-23 13:33:01
280
1
转载 关于Invoke和BeginInvoke学习
原文链接:Invoke和BeginInvoke理解 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法。 一、为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。 1、windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让w
2021-11-02 15:10:16
184
原创 JSON.NET学习(9)--反序列化对象构造函数处理(三)
public class Website { public string Url { get; set; } public Website(Website website) { //todo... } public Website(int value) { //todo... } } string json = @"{'Url':'http://www.google.com'}"; try { //当反序列化对象无.
2021-11-02 14:57:49
151
原创 JSON.NET学习(9)--反序列化对象构造函数处理(四)
public class Website { public string Url { get; set; } private Website() { } public Website(Website website) { if (website == null) { throw new ArgumentNullException(nameof(website)); }
2021-11-02 14:57:22
188
原创 JSON.NET学习(9)--反序列化对象构造函数处理(二)
public class Website { public string Url { get; set; } public Website(int value) { //todo... } } string json = @"{'Url':'http://www.google.com'}"; try { //当反序列化对象无默认构造函数但存在一个重载构造函数时,反序列化会只调用重载构造函数 var web = JsonConvert.Deseri.
2021-10-29 13:33:09
296
原创 JSON.NET学习(9)--反序列化对象构造函数处理(一)
//存在默认构造函数(无论显示还是隐式) public class Website { public string Url { get; set; } public Website() { //todo... } public Website(Website website) { //todo... } public Website(int value) { //todo... } }
2021-10-29 13:29:50
637
原创 JSON.NET学习(8)--使用JSON中的值填充现有的对象实例
public class Account { public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public List<string> Roles { get; set; } } //声明一个对象,并初始化 Account account = new Account { Email = "j
2021-10-29 11:44:08
253
原创 JSON.NET学习(7)--反序列化文件
public class Movie { public string Name { get; set; } public int Year { get; set; } } // read file into a string and deserialize JSON to a type Movie movie1 = JsonConvert.DeserializeObject<Movie>(File.ReadAllText(@"c:\movie.json")); // deser
2021-10-29 11:35:04
135
原创 JSON.NET学习(6)--JSON匿名反序列化
//当存在一个json格式的字符串需要呗反序列化,但又不知道它对应的类型,此时可以使用匿名序列化。 //声明一个匿名对象,并初始化 var definition = new { Name = "" }; //使用匿名序列化函数 string json1 = @"{'Name':'James'}"; var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition); Console.WriteLine(customer1.Name
2021-10-29 11:25:26
562
原创 JSON.NET学习(5)--三种常见JSON反序列化
//反序列化对象 public class Account { public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public IList<string> Roles { get; set; } } string json = @"{ 'Email': 'james@example.com',
2021-10-29 11:20:57
508
原创 JSON.NET学习(4)--枚举序列化
List<StringComparison> stringComparisons = new List<StringComparison> { StringComparison.CurrentCulture, StringComparison.Ordinal }; //不使用JsonConverter,枚举序列化结果是对应的数值 string jsonWithoutConverter = JsonConvert.SerializeObject(stringCompar
2021-10-29 11:16:46
469
原创 JSON.NET学习(3)--序列化到本地文件
public class Movie { public string Name { get; set; } public int Year { get; set; } } static void Main(string[] args) { Movie movie = new Movie { Name = "Bad Boys", Year = 1995 }; // serialize JSON to a string and then writ
2021-10-29 10:44:11
236
原创 JSON.NET学习(2)--三种基本序列化
JOSN.NET序列化对象。 public class Account { public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public IList Roles { get; set; } } Account account = new Account { Email = “james@example.com”, Active = true
2021-10-29 10:28:21
166
原创 JSON.NET学习(1)--JOSN结构
JSON结构介绍: JSON的两种结构 JSON有两种表示结构,对象和数组。 1-1:对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成, 关键字和值之间以”:”分隔,语法结构如代码。 { key1:value1, key2:value2, … } 1-2数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。 [ { key1:value1, key2:value2 }, { key3:valu
2021-10-29 10:14:19
117
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅