wpf编程宝典使用c# 2008和net 35(第2版)样式

wpf编程宝典使用c# 2008和net 35(第2版)样式

ID:14276916

大小:48.00 KB

页数:15页

时间:2018-07-27

wpf编程宝典使用c# 2008和net 35(第2版)样式_第1页
wpf编程宝典使用c# 2008和net 35(第2版)样式_第2页
wpf编程宝典使用c# 2008和net 35(第2版)样式_第3页
wpf编程宝典使用c# 2008和net 35(第2版)样式_第4页
wpf编程宝典使用c# 2008和net 35(第2版)样式_第5页
资源描述:

《wpf编程宝典使用c# 2008和net 35(第2版)样式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、WPF编程宝典使用C#2008和NET35(第2版)样式WPF编程宝典使用C#2008和NET35(第2版)样式.txt∞-一人行,必会发情二人行,必会激情三人行,必有奸情就不会被珍惜。真实的女孩不完美,完美的女孩不真实。得之坦然,失之淡然,顺其自然,争其必然。本文由隐于山林贡献pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。第12章样式在第11章学习了WPF资源系统,使用资源可以在一个地方定义对象而在整个标记中使用它们。尽管可以使用资源存储各种对象,但是使用资源最常见的原因是通过它们保存样式。样式是可以应用到元素的属性值的集合。WPF样式

2、系统和HTML标记中的层叠样式表(cascadingstylesheet,CSS)标准扮演类似的角色。和CSS类似,通过WPF样式可以定义格式化特性集合,并且为了保证一致性,在整个应用程序中应用它们。同CSS一样,WPF样式也可以自动工作,指定具体的元素类型,并且通过元素树层叠起来。然而,WPF样式的功能更加强大,因为它们能够设置任何依赖项属性。这意味着可以使用它们标准化未格式化的特性,如控件的行为。WPF样式还支持触发器,当一个属性发生变化时可以通过触发器改变控件的样式(正如将要在本章中介绍的那样),并且能够使用模板重新定义控件的内置外观(将在第15章中介绍这些内容)。一旦

3、学习了如何使用样式,就可以在所有的WPF应用程序中使用它们。12.1样式基础在第11章中已学习过,资源具有几个重要的优点,包括简化标记和使应用程序更容易维护。那么样式有哪些优点呢?为了理解适合使用样式的场合,分析一个简单的示例十分有帮助。设想需要标准化在窗口中使用的字体。最简单的方法是设置包容器窗口的字体属性。这些属性是在Control类中定义的,包括FontFamily属性、FontSize属性、FontWeight属性(用于粗体)、FontStyle属性(用于斜体)以及FontStretch属性(用于压缩的或扩展的变体)。幸运的是,这些属性值具有继承特性,当在窗口级别上设

4、置这些属性时,在窗口中的所有元素都会使用相同的属性值,除非显式地覆盖它们。注意:属性值继承是依赖项属性提供的许多可选的特性之一。在第6章已介绍了依赖项属性。现在考虑一种不同的情况,希望只为用户界面中的一部分锁定字体。如果能够在一个特定包容器中隔离这些元素(例如,它们都处于一个Grid面板或StackPanel面板中),可以使用本质上相同的方法,并设置包容器的字体属性。但问题并不总是这么简单。例如,可能希望使所有的按钮具有一致的字体和文本尺寸,并且使用和其他元素不同的字体设置。对于这种情况,就需要另外一种方法,在某个地方定义这些细节,并在所有应用它们的地方重用这些细节。资源提供

5、了一个解决方案,但是有些笨拙。因为在WPF中没有Font对象(只有与字体属性第12章样式相关的集合),所以需要定义几个相关的资源,如下所示:TimesNewRoman18Bold上面的标记为窗口添加了三个资源:第一个资源是FontFamily对象,该资源包含希望使用的字体名称;第二个资源是存储数字18的double对象;第三个资源是一个枚举值FontWeight.Bold。假定已经将.NET名称空间系统映射到XAML名称空间前缀,如下所示:

6、System;assembly=mscorlib"……>提示:当使用资源设置属性时,正确匹配属性类型是非常重要的。这时WPF使用类型转换器的方式和直接设置一个特性值是不同的。例如,如果正在为元素设置FontFamily特性,可以使用字符串“TimesNewRoman”,因为FontFamilyConverter转换器会创建所需要的FontFamily对象。但如果试图使用字符串资源设置FontFamily属性,情况就不同了——这时,XAML解析器会抛出一个异常。一旦定义了所需要的资源,下一步是在元素中实际使用这些资源。因为在整个应用程序的生命周期中,这些资源永远不会发生变化,所

7、以使用静态资源比较合理,如下所示:ACustomizedButton这个示例可以工作,并且它将字体细节移出了标记。但该示例也存在两个问题:●(除了资源名称相似之外)没有明确指明这三个资源是相互关联的。这使维护应用程序变得复杂。如果希望设置更多的字体属性,或者决定为不同类型的元素维护不同的字体设置,这一问题会变得更加严重。●使用资源设置属性的标记非常繁琐。实际上,还没有原来不使用资源时简明(直接为元素定义字体属性)。可以通过定义一个将所有字体细节捆绑在一起的自定义类(如FontSetting类),来解决第

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。