![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WPF
文章平均质量分 76
Asher_Yu
这个作者很懒,什么都没留下…
展开
-
WPF: A Beginner's Guide: Part 2 of n
原文来自CodeProject。What To Do In Xaml通俗来讲,WPF可以被看做类似于Model View Controller(MVC),Model与Controller组合在一起,但XAML背后的代码能够使界面与代码逻辑相区分,有点像ASP.Net;有了XAML,使这不同于传统的MVC,那就是界面是被分开定义的;What To Do In Code在界面之后,代码(C#|VB.N...翻译 2018-05-30 10:02:25 · 209 阅读 · 0 评论 -
WPF-14:事件-2
来自《深入浅出WPF》(刘铁猛)读书笔记RoutedEventArgs有两个属性:Source,OriginalSource,这两个属性都表示路由事件传递的起点(即事件消息的源头),只不过Source表示LogicalTree上的消息源头,而OrigianlTree则表示VisualTree上的源头。为目标UI元素添加事件侦听器的包装器是Add*Handler的public static方法;解除...转载 2018-04-27 14:56:25 · 122 阅读 · 0 评论 -
WPF-15:命令-1
来自《深入浅出WPF》(刘铁猛)读书笔记WPF的命令系统有几个基本要素构成:a)命令(Command):WPF的命令实际上就是实现了ICommand接口类;b)命令源(Command Source):实现了ICommandSource接口类;c)命令目标(Command target):实现了IInputElent接口类;d)命令关联(Command Binding):负责把一些外围逻辑与命令关联...转载 2018-04-27 16:44:00 · 217 阅读 · 0 评论 -
WPF-16:命令-2
来自《深入浅出WPF》(刘铁猛)读书笔记WPF命令实现了ICommand接口的类,这个接口只包括:i)Execute方法;ii)CanExecute方法:在执行之前用来探知命令是否可被执行;iii)CanExecuteChanged事件:当命令可执行状态发生改变时,可激发此事件来通知其他对象。以ApplicationCommands为例,当一个命令到达命令目标后,具体是执行Copy还是Cut(业务...转载 2018-04-28 07:57:01 · 171 阅读 · 0 评论 -
WPF-16:资源
来自《深入浅出WPF》(刘铁猛)读书笔记WPF不但支持程序级的传统资源,同时还推出独具特色的对象级资源,每个界面元素都可以携带自己的资源并可被自己的子级元素共享。WPF程序中数据就分为4个等级存储:数据库里的数据相当于存放在仓库里,资源文件里的数据相当于放在旅行箱里,WPF对象资源里的数据相当于放在随声携带的背包里,变量中的数据相当于拿在手上。每个WPF的界面元素都具有一个名为Resources的...转载 2018-04-28 10:40:40 · 160 阅读 · 0 评论 -
WPF-17:模板
来自《深入浅出WPF》(刘铁猛)读书笔记Binding和基于Binding的数据驱动界面是WPF的核心部分。控件(Control)是数据内容表现形式和算法内容表现形式的双重载体。换句话说,控件即是数据的表现形式让用户可以直观的看到数据,又是算法的表现形式让用户方便的操作逻辑。WPF中的Template分为两大类:1)ControlTemplate:算法内容的表现形式;2)DataTemplate:...转载 2018-04-28 14:52:40 · 128 阅读 · 0 评论 -
WPF-18:绘图和动画
来自《深入浅出WPF》(刘铁猛)读书笔记软件项目成功与否的三个要素:资源,成本,时间。矢量图(Vector Image):无论怎样放大/缩小都不会出现锯齿。使用Blend可以直接绘制XAML图像;Design可以像Photoshop或Fireworks那样绘制图形,再由设计者决定导出为png或XAML格式。WPF的基本图形包括以下几个(都是Shape类的派生类):1)Line:可以设置笔触(Str...转载 2018-04-28 17:12:59 · 256 阅读 · 0 评论 -
WPF: 数据绑定(Halcon)
本实例完全是翻译Halcon 13.0中的实例代码BindingWPF(WPF新手)。1)构建编程环境 1.1)参照实例代码,在VS2017 Community中选择WPF窗体模式(WPF应用(.Net Framework),同时选择框架.Net Framework 3.5),选择代码保存的位置,直接生成即可。 1.2)这一步,可以选编译试试,选择Run,看看代码是否能正常生成,运行。...翻译 2018-05-03 16:53:49 · 3137 阅读 · 2 评论 -
WPF:DrawingObject (Halcon)
本文翻译自Halcon中的实例(DrawingObjectsWPF)。此实例介绍了:存在一个*.hdev格式的图像处理文件,把整个图像处理过程导出为C#代码;通过右键点击界面上的图像而画矩形,圆等。1)创建WPF窗体文件,.Net版本选择3.5;2)添加HalconDotNet 3.5版本的引用;3)进入XAML文件中: 3.1)添加Window的命名空间引用,设置窗体大小,及Loaded事...翻译 2018-05-07 13:23:07 · 2965 阅读 · 2 评论 -
Halcon:HDevelopTemplate (WPF)
源代码来自Halcon/HDevelopTemplate (WPF).本实例介绍了在C#中直接加载HDevlop导出的代码,并运行。简单快捷,提供了一种设计模式。1)新建一空的WPF窗体项目,.Net版本选择3.5;2)添加Halcon3.5版本的引用halcondotnet;3)在XAML中设置窗体属性:Loaded="Window_Loaded"Title="Window1" Height=...翻译 2018-05-09 10:15:39 · 1152 阅读 · 0 评论 -
WPF: A Beginner's Guide - Part 1 of n
翻译,原文来自CodeProject,有节选。作者Sacha Barber写文章很用心,希望我能很用心的看。我更关注的是实际工程中的应用。这篇文章主要讲解WPF中的Layout。1)控件的属性参数Margin通过使用Margin,我们可以指定当前的控件与四周的空间大小。WPF提供一个函数ValueConverter,可以接受一个字符串如5,5,5,5,指示当前控件与四周间隔5个像素,分别为left...翻译 2018-05-11 16:56:39 · 154 阅读 · 0 评论 -
Halcon:Matching (WPF)
源代码来自Halcon/Example/C#/MatchingWPF,主要目的是熟悉Halcon中Matching的应用,当然,我不会忘记WPF的介绍。代码的整个流程可以解释为:定义模板 -> 加载不同的图像 -> 再次定位模板的位置。针对Halcon 13版本,选择的.Net版本还是3.5.文中注释特别提到:由于WPF中与界面的互相交流的限制,我们从控件中得到Halcon窗体最好的地...翻译 2018-05-14 11:07:16 · 1240 阅读 · 0 评论 -
WPF-13: 事件-1
来自《深入浅出WPF》(刘铁猛)读书笔记路由(Route):起点与终点间有若干个中转站,从起点出发后经个每个中转站时要做出选择,最终以正确(比如最短或最快)的路径到达终点。WPF中有两种“树”:逻辑树(Logical Tree)和可视元素树(Visual Tree)。如果把LogicalTree延伸至Template组件级别,我们得到VisualTree。实际工作中多数情况下,我们是在与Logic...转载 2018-04-27 14:23:26 · 135 阅读 · 0 评论 -
WPF-12:属性-3
来自《深入浅出WPF》(刘铁猛)读书笔记附加属性(Attached Properties)一个属性本来不属于某个对象,但由于某种需求而被后来附加上。也就是把对象放入一个特定环境后对象才具有的属性,表现出来就是被环境赋予的属性。附加属性的作用是将属性与数据类型(宿主)解耦,让数据类型的设计更加灵活。附加属性声明时一样使用public static readonly三个关键字共同修饰,唯一不同就是注册...转载 2018-04-27 08:55:05 · 149 阅读 · 0 评论 -
WPF-1:前言
本系列计划读《深入浅出WPF》(刘铁猛)自己写的笔记而已。如有不对的地方,没关系。就像我们写的代码一样,永远有Bug,永远在Debug。GUI程序员手中的开发工具经理了Win32 API->MFC->ActiveX/COM/Visual Basic ->Windows Form -> Windows Presentation Foundation (WPF).WPF: 专门...转载 2018-04-24 08:43:58 · 158 阅读 · 0 评论 -
WPF-2:XAML
来自《深入浅出WPF》(刘铁猛)读书笔记XAML=Extensible Application Markup Language可扩展应用程序标记语言。是WPF技术中专门用于设计UI的语言。XAML的优点:1)可以设计出专业的UI和动画;2)无需专业的编程知识;3)UI设计师能直接参与软件开发;4)真正实现UI与逻辑的剥离。XAML是一种单纯的声明型语言,也就是说,它只能用来声明一些UI元素。绘制U...转载 2018-04-24 10:05:51 · 97 阅读 · 0 评论 -
WPF-3:XAML语法
来自《深入浅出WPF》(刘铁猛)读书笔记XAML使用标签来定义UI元素,每个标签对应.Net Framework类库中的一个控件类。针对同一个‘看上去一样’的UI布局,XAML代码不一定唯一。一份XAML文档中除了使用标签声明对象就是初始化对象的属性了。XAML中为对象属性赋值共有两种语法:使用字符串简单赋值;使用属性元素进行复杂赋值;通过Attribute=Value语法赋值时,由于XAML的语...转载 2018-04-24 13:11:38 · 225 阅读 · 0 评论 -
WPF-4:x名称空间
来自《深入浅出WPF》(刘铁猛)读书笔记x代表XAML的首字母。大凡包含XAML代码的WPF程序都需要通过语句xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"来引入http://schemas.microsoft.com/winfx/2006/xaml这个名称空间。x名称空间映射的是http://schemas.microsoft.com...转载 2018-04-24 15:59:38 · 193 阅读 · 0 评论 -
WPF-5:空间与布局
来自《深入浅出WPF》(刘铁猛)读书笔记程序的本质是“数据+算法”--用户输入原始数据,算法处理原始数据并显示结果数据。这个时候就要考虑到GUI啦。Windows GUI开发历史,分为四个阶段:WinAPI时代-》封装时代-》组件化时代-》WPF时代。我们现在需要建立这样一个概念:WPF中是数据驱动UI,数据是核心。主动的;UI从属于数据并表达数据,是被动的。WPF把那些能够展示数据,响应用户操作...转载 2018-04-25 11:51:37 · 292 阅读 · 0 评论 -
WPF-6: Binding -1
来自《深入浅出WPF》(刘铁猛)读书笔记程序的本质是数据加算法。数据会在存储,逻辑和展示三个层流通,所以站在数据的角度上来说,这三个层都很重要。但算法在程序中的分布就不均匀了,对于一个三层结构的程序来说,算法分布在这几处:A)数据库内部;B)读取和写回数据;C)业务逻辑;(程序的核心)D)数据展示;E)界面与逻辑的交互;WPF作为一种专门的展示层技术,华丽的外观和动画只是它的表层现象,更重要的是它...转载 2018-04-25 15:48:58 · 183 阅读 · 0 评论 -
WPF-7: Binding -2
来自《深入浅出WPF》(刘铁猛)读书笔记D)没有Path的Binding表象:代码中看到path是一个“.”或者干脆没有Path的Binding;Binding源本身就是数据且不需要Path来指明,典型的,string,int等基本类型就是这样,他们实例的本身就是数据,我们无法指出通过它的哪个属性来访问这个数据,这时我们只需将Path值设置为“.”就可以了。在XAML代码里这个"."可以省略,但在...转载 2018-04-26 09:19:27 · 155 阅读 · 0 评论 -
WPF-8: Binding -3
来自《深入浅出WPF》(刘铁猛)读书笔记J)使用LINQ检索结果作为Binding的源LINQ的查询结果是一个IEnumerable<T>类型对象,而IEnumerable<T>有派生自IEnumerable,所以它可以作为列表控件的ItemSource来使用。创建一个名为Student的类:public class Student{ public int id{...转载 2018-04-26 11:12:58 · 143 阅读 · 0 评论 -
WPF-9: Binding -4
来自《深入浅出WPF》(刘铁猛)读书笔记Binding的数据校验使用属性ValidationRules,类型为Collection<validationRule>。ValidationRule类是一个抽象类,在使用的时候我们需要创建它的派生类并实现它的Validate方法。Validate方法的返回值是ValidationResult类型对象,如果校验通过,就把ValidationRe...转载 2018-04-26 14:25:56 · 125 阅读 · 0 评论 -
WPF-10: 属性-1
来自《深入浅出WPF》(刘铁猛)读书笔记什么样的对象才能作为Binding的target以及Binding将把数据送往何处?C#语言规定:对类有意义的字段和方法使用static关键字修饰,称为静态成员,通过类名加访问操作符“.”可以访问它们;对类的实例有意义的字段和方法不加static关键字,称为非静态成员或实例成员。依赖属性:可以自己没有值,并能通过使用Binding从数据源获得值的属性。拥有依...转载 2018-04-26 16:33:42 · 206 阅读 · 0 评论 -
WPF-11:属性-2
来自《深入浅出WPF》(刘铁猛)读书笔记依赖对象的依赖属性是一个static,那调用依赖对象的SetValue方法时,值被存储到哪里?依赖属性大致分两步:Register;Set、GetValue。DependencyProperty类具有这样一个成员:private static Hashtable PropertyFromName=new Hashtable();一旦程序运行,就会有这样一个全...转载 2018-04-26 17:31:14 · 136 阅读 · 0 评论 -
WPF: FishEyePanel/FanPanel - 自定义Panel
原文来自CodeProject,主要介绍如何创建自定义的Panel,如同Grid和StackPanel。1) Introduction文中介绍了两种Panel:FishPanel(鱼眼面板,点击时当前面板变大,其它面板变小,但整体宽度不变),FanPanel(帆面板,不知如何翻译比较贴切,就这样吧;子面板位置,大小都可以改变,同样整体宽度不变)。2)Using the Code最低版本VS2005...翻译 2018-05-15 11:30:57 · 1141 阅读 · 0 评论