WPF控件的设计策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WPF控件的设计策略
摘要:WPF的出现给界面的设计带来了惊艳的效果,在很多情况下,根据设计的需要我们要对一些控件进行修改和扩充,根据控件的一些设计策略我们可以简洁而又灵活地对控件进行设置.
关键词:WPF 控件设计控件模板
1、引言
WPF的出现为Windows应用程序的开发带来一次新的革命,因为新的架构提供了一种全新的开发模式,使得界面的显示和代码得到更好的分离。
界面的显示和代码的分离,使界面设计起来更加简单,更加绚丽和惊艳。
当你需要一个表现丰富的控件时,而已经存在的控件又不能满足需要,这个时候就需要开发一个定制的控件了。
WPF提供了创建控件的通用模式,为控件的定制提供了灵活性,因此我们在定制一个控件时,我们必须了解其本身的特性,这样我们才能设计出更绚丽的UI界面。
2、设计策略
2.1 WPF中的Content
WPF中关于Content[3]的概念就是指控件需要所显示的内容,显示的内容丰富多彩的,不再是单纯的字符串。
你可以将其设置为图片,文字和控件的组合形式,显示形式是多变的。
许多标准的WPF控件是支持丰富的内容显示,比如在一个Label的Content 里面可以设置图片,文字,和其他一些控件像Button,CheckBox等等。
Content里面设置的效果可以说是很丰富的,控件的Content里面可以设置为一些动画效果和触发事件,达到绚丽界面的效果。
总的来说,WPF控件本身可以包含各种可视界面和任何的数据形式,所以一般来说没有必要达到用户的一个复杂的界面,而去创建或者是修改控件。
2.2样式(Style)
在WPF中我们通过Style来设置控件的一些属性,实际上样式是对控件属性的展示。
通过设置样式,我们可以对控件的显示效果和行为进行重用,并可以使该设置影响到指定范围内的所有该控件或者是指定的某一控件,这样就达到了套用样式避免重写控件的效果。
比如说我们想把窗口中的每一个TextBox都显示为同一种风格,我们可以设置一个Style,而不必分别去设置每一个TextBox,其中Style被作为一种资源来调用。
用Setter是用来设置TextBox类的属性的,可以对字体颜色属性(Foreground),背景颜色属性(Background)以及显示内容属性(Text)等等进行设置,当然你可以进行更多的属性设置,只要它具备该属性。
以后每定义一个TextBox,都是这种风格的,即使里在定义的时候又重新设置了上述属性是对TextBox的外观是没有改变的,还是在资源里面定义的那种样式,除非有明确的指明。
当然可以设置Style中没有设置的属性,这种属性设置是有效的,是可以对TextBox的外观进行更改的。
在大多数情况下,我们是不愿意把所有的某一类控件都使用成同一种风格,可能某一区域使用一种风格,另外一个区域使用不同的一种风格。
上述的TextBox 的风格都要受到Style的影响,要想把定义的Style影响到指定的TextBox类,而其他的TextBox不受到影响,只需要在Style中加上了x:Key=“TxbStyle”,然后
对需要引用的类中加上Style=“{StaticResource TxbStyle},对于Style的设置,我们也可以在里面添加Trigger(触发器)[4]来对界面的交互做出改变,具体的应用会在后面的触发器里面提到。
2.3WPF中的控件模板(ControlTemplate)
其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。
我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。
前面已经讲过了关于控件的Style的设置,Style的设置只能在控件已有的属性上进行设置,但是要想改变控件的内部结构就必须通过改变控件模板来实现,控件模板可以改变控件的内部结构,极大程度地改变控件的外观。
要替换控件模板,我们只需声明控件模板对象,然后对控件模板对象做相应的定义,然后把定义好的控件模板对象赋值给Template就行了。
控件模板包含两个重要的属性:
(1)VisualTree,该模板的视觉树,其实我们就是使用这个属性来描述控件的外观的。
(2)Triggers,触发器列表,里面包含一些触发器Trigger,我们可以定制这个触发器列表来使控件对外界的刺激发生反应。
2.4数据模板(DataTemplate)
WPF中的数据模板(DataTemplate)为数据的表现方式提供了很大的灵活性,WPF控件具有支持自定义数据表示的内置功能。
通过对数据模板得到设置,我们可以改变数据的显示风格,通过对数据模板的更改我们可以对同一个控件里面的数据可以有不同的显示风格,显示方式是丰富多彩的,从而来达到改变控件的目的。
利用数据模板,您可以声明性地指定某个数据片断的可视化方式。
您可以将问题换个方向,让数据来确定将要创建的显示内容,而无需创建可绑定到数据的自定义用户界面。
WPF中数据模板同样对数据的绑定起着很重要的作用。
3、结束语
WPF的出现为控件的设计提供了很绚丽的平台,掌握控件的设计策略使我们在自定义控件时,变得更加灵活。
我们必须很好地掌握控件的属性,这点是很重要的,只有掌握了控件的属性才能有合理的决策,才能设计出更好的设计方案。
参考文献:
[1]Chris Sells, Ian Griffiths. Programming WPF[M]. O’Reill Media,Inc,2008.56-78.
[2]Lori A.MacVittie.XAML in a Nutshel1[J].O Reilly,2006.78-85.
[3]Christian Nagel. C#高级编程[M]. 清华大学出版社,2008.200-211.。