WPF中的ControlTemplate:
WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和 ItemsPanelTemplate,这里讨论一下ControlTemplate。
其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观(视觉树)以及 外观对外界刺激所做出的反应(触发器)。我们可以自定义一个模板来替换掉控件的 默认模板以便打造个性化的控件。
与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模 板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,比如我们可以定制这样的按钮:在它的左办部分显示一个小图标而它的右半部分显示文本。要替换控件的模板,我们只需要声明一个ControlTemplate对象,并对该ControlTemplate对象做相应的配置,然后将该ControlTemplate对象赋值给控件的Template属性就可以了。
ControlTemplate包含两个重要的属性:
1、 VisualTree,该模板的视觉树,其实我们就是使用这个属性来描述控件的外观的;
2、 Triggers,触发器列表,里面包含一些触发器Trigger,我们可以定制这个触发器列 表来使控件对外界的刺激发生反应,比如鼠标经过时文本变成粗体等。
WPF中的数据模板(DataTemplate):
在WPF中我们可以为自己的数据定制显示方式,也就是说虽然某数据数据是一定的,但我们可以做到让它的表现方式多种多样,比如一个时间,在以前我们一般使用一个字符串(比如“12:03”)来显示,但我们为什么就不能显示一个小时钟呢,其实这更合乎情理,利用WPF中的数据模板技术随意并轻松地表现你的数据。数据模板适用于Content Control类控件与Items Control类控件。
场景模拟:假设我们现在有如下需求
我们需要在ListBox中的每个Item中显示某个成员的姓名、年龄以及喜欢的颜色,点击Item的时候,会在右边 显示详细信息,同时也想让ListBox的样式变得好看一些,比如带有绿色边框等。
为了实现以上需求,我们可以使用控件模板来修改ListBox的默认样式,使之变得生动有趣,使用数据模板来 改变ListBoxItem的数据呈现形式。
Demo:
为了改变ListBoxItem的外观,我们在资源里定义一个名字为listBoxItemTemplate的数据模板,模板中使用 Binding将数据进行关联,然后为ListBox的ItemTemplate属性进行赋值。当我们点击左面ListBoxItem的时候,为了能在右面显示详细信息,我们定义四个Label,绑定左侧选中的 ListBoxItem。为了绑定方便,我们为四个Label加个父容器StackPanel,并将它的DataContext属性绑定到选中的 ListBoxItem上(四个Label的DataContext就会继承StackPanel的DataContext属性)。
架构:
目前用户用户对PC端应用的两种开发模式(C/S和B/S)理解是很片面的,今天我们将为 各位详细讲解下两者的区别。
CS即Client/Server(客户机/服务器)结构,C/S结构在技能上非常成熟,它的重要特征 就是交互性强、拥有安全的存取形式、网络通信数量低、响应速度快、利于处置大量数 据。可是这个结构的程序就是针对性开发,变更不够灵活,维护与管理的难度较大。常 常只局限在小型局域网,不利于扩展。而且,因为这个结构的每台客户机全部须要安装 相对应的客户端程序,分布功能弱并且兼容性差,不可以完成迅速部署安装与配置,因 为这样缺少通用性,拥有比较大的局限性。请求拥有肯定专业水准的技能人员去结束。BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器 (Server),而客户端选用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序就是一个特别大的进步。B/S结构的重要特征就是分布性强、维护方便、开发简单并且共享性强、总体拥有费用低。但数据安全性问题、对服务器需要过高、数据传输速度慢、软件的个性化特征明显减少,这些缺点就是有目共睹的,难以完成传统形式下的特殊功能请求。比如通过浏览器实行大量的数据输入或实行报表的应答、专用性打印输出全部相对比较困难与不便。另外,完成复杂的应用构造有较大的困难。
CS架构:
优点:可以足够表现客户端PC的处置才能,很多工作能够在客户端处置以后再提交给服务器,于是CS客户端响应速度快;
操作界面漂亮、形式多样,能够足够满足客户自己的个性化要求;
C/S结构的管理信息系统拥有比较强的事务处置才能,可以完成复杂的业务过程;
安全性能能够非常容易确保,C/S通常面向相比固定的用户群,程序越发注重过程,它能够对权限实行多层次校验,提供了更安全的存取形式,对信息安全的控制才能 非常强。通常高度机密的信息系统选用C/S结构适宜。
缺点:须要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不可以完成迅速部署安装与配置;
兼容性差,关于不一样的开发工具,拥有比较大的局限性。假如选用不一样工具,须要重新改写程序;
开发、维护费用较高,须要拥有肯定专业水准的技术人员才可以结束,发生一次升级,就全部客户端的程序全部须要更改;
用户群固定。因为程序须要安装就可使用,因为这样不符合面向一些不可知的用户,于是实用面窄,常常用来局域网中。
BS架构:
优点:分布性强,客户端零维护。只需有网络、浏览器,能够随时随地实行查询、浏览等业务处理;
业务扩展简单便利,通过添加网页就可以添加服务器功能;
维护简单便利,只须要更改网页,就可以完成全部用户的同步更新;
开发简单,共享性强。
缺点:个性化特征明显减少,没办法完成拥有个性化的功能要求;
在跨浏览器上,BS架构不尽如人意;
客户端服务器端的交互就是请求-响应形式,常常动态刷新页面,响应速度明显减少(Ajax能够肯定程度上处理这个问题)。没办法完成分页显示,给数据库访问导致较大的压力;
在速度与安全性上须要花费超大的设计费用;
功能弱化,难以完成传统形式下的特殊功能需要。
小结:CS响应速度快,安全性强,通常应用在局域网当中,可是开发维护费用高;BS能够完成 跨平台,客户端零维护,可是个性化才能低,响应速度较慢。于是有一些单位平日办公应用BS,在实际生产当中使用CS结构。
XAML高级教程与架构
最新推荐文章于 2022-06-27 17:03:34 发布