WPF
男怕选错行
码农一枚
展开
-
WPF拙见
binding模型Binding的源是数据的源头。只要一个对象通过属性公开自己的数据,它就能作为Bindingd 源。如果想让源对象具有自动通知Binding自己属性值已经变化的能力,那么就需要让类实现INotifyPropertyChanged接口并在属性的set语句中激发PropertyChanged事件。我们除了用这种对象作为数据源外,我们还有更多的选择,比如控件把自己或自己的容器或子级原创 2017-09-22 14:39:44 · 250 阅读 · 0 评论 -
深入浅出WPF之我见8
Panel族Grid适用的场合有UI整体尺寸改变时,元素需要保持固有的高度和宽度比例。大量UI元素需要成行或者成列对齐的情况。原创 2017-09-21 19:50:15 · 271 阅读 · 0 评论 -
深入浅出WPF之我见7
X:ArrayX:Array的作用就是通过它的Items属性向使用者暴露一个类型已知的Arraylist实例,Arraylist内成员的类型由A:Array的Type指明。控件(Control)是数据和行为的载体,而无需具有固定的形象。Button之所以为Button不是因为它长的方方正正,显示一串文字并且能够响应用户点击。应该倒过来想,凡是符合能显示一些提示内容,并能响应用户点击原创 2017-09-21 10:07:42 · 294 阅读 · 0 评论 -
深入浅出之我见6
xaml标签声明的是对象,一个xaml标签会对应着一个对象,在net平台上,类是引用类型,引用类型的实例在使用时是以“引用者—实例”的形式成对出现的,而且我们只能通过引用者来访问实例。xaml这种对象声明语言只负责声明对象而不负责为这些对象声明引用变量。如果我们需要为对象准备一个引用变量以便在C#代码中直接访问就必须显示告诉xaml编译器,为这个对象声明引用变量,这是x:Name就派上用场了。原创 2017-09-20 15:11:33 · 227 阅读 · 0 评论 -
深入浅出WPF之我见5
事件处理器和代码后置在net事件处理机制中,可以为对象的某个事件指定一个能与该事件匹配的成员函数,当这个事件发生时,net运行时会去调用这个函数,即表示对这个事件的响应和处理。之所以能实现代码后置功能,是因为net支持partial类并能将解析XAML所生成的代码与X:Class所指定的类进行合并。有两点需要注意:一切用于实现程序逻辑的代码都要放在后置的C#文件中默认 情况下,可以原创 2017-09-20 10:40:27 · 319 阅读 · 0 评论 -
深入浅出WPF之我见4
XAML编译器会为每个标签创建一个与之对应的对象,对象创建出来之后要对它的属性进行必要的初始化之后才有使用意义。XAML除了使用标签声明对象就是初始化对象的属性了。原创 2017-09-19 17:12:40 · 352 阅读 · 0 评论 -
深入浅出WPF之我见3
XAML是一种“声明”语言,当你见到一个标签,就意味着声明了一个对象,对象之间的层级关系要么是并列的,要么是包含的XAML中引用外来程序集和其中net名称空间的语法与C#是不一样的,在C#中,如果想使用System.Windows.Control名称空间里的Button类需要先把包含System.Windows.Control原创 2017-09-19 14:36:40 · 486 阅读 · 0 评论 -
深入浅出WPF之我件2
同样一段代码,如果在编译时使用了/t:exe参数,那么将编译出一个命令行程序,如果把/t:exe换成/t:winexe,则编译结果是一个图形用户界面程序,如果把/t:winexe换成/t:library,则编译结果是一个动态链接库。因此微软提供了模板,可以直接选择模板以后,实际上就是VS给你自动配置后了编译器的参数,并准备了一套基本的源代码。在WPF的模板中,有一个App.xaml分支原创 2017-09-19 10:55:46 · 384 阅读 · 0 评论 -
WPF深入浅出之我见
WPF的功能就是用来编写应用程序的表示层,开发层技术并不算少,包括WPF,WINFORM,asp.net,silverlight等.WPF技术则是微软在开发理念上的一次升级,由事件驱动变为数据驱动。事件驱动时代,用户每进行一个操作都会触发一个事件,事件发生后,用于响应事件的事件处理器就会执行。事件处理器是一个方法。在这个方法中,程序员可以调用别的方法或者是处理数据,在其中,数据是静态被动的原创 2017-09-19 09:37:30 · 471 阅读 · 0 评论 -
深入浅出WPF9
依然是依赖性属性相关比如界面上有 AB两个图片,大小一样,我们需要在改变图片A大小的时候,同时也改变B的大小,让他们的大小总保持一致解决方案:我们需要在图片A的SizaChanged事件中添加处理图片B的方法。把图片A的size赋给图片B,这么一个简单的功能需要这么一段代码来写是不是有点繁琐,若此类需求更多,则你需要处理的事件将更多。然后依赖属性,可以用下面三句话实现此功能:ima原创 2017-09-22 12:01:16 · 274 阅读 · 0 评论