`
gstarwd
  • 浏览: 1488367 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Silverlight教程第四部分:使用 Style 元素更好地封装观感

阅读更多

Silverlight教程第四部分:使用 Style 元素更好地封装观感

 

 

【原文地址】Silverlight Tutorial Part 4: Using Style Elements to Better Encapsulate Look and Feel
【原文发表日期】 Friday, February 22, 2008 5:53 AM

这是8个系列教程的第4部分,这个系列示范如何使用 Silverlight 2 的 Beta1 版本来创建一个简单的 Digg 客户端应用。这些教程请依次阅读,将有助于您理解 Silverlight 的一些核心编程概念。

使用 Style 元素更好地封装观感(Look and Feel)

WPF 和 Silverlight 支持一种 Style 机制,它允许我们把控件的属性值封装成可重用的资源。我们可以把这些样式声明保存在独立于页面的其他文件中,然后就可以在一个应用程序中跨控件和页面重用 (甚至跨多个应用程序重用)。在做一些基本定制的场景下,概念上类似于在 HTML 中重用 CSS.

注:除了定义基本属性设置(Color, Font, Size, Margins 等),WPF 和 Silverlight 里的样式还可以被用来定义和重用控件模板(Control Templates) - 控件模板可以带来超级丰富的皮肤功能,以及改变控件结构的功能(并支持目前 HTML 中的 CSS 做不到的定制场景)。我会在这个系列的第7部分讨论控件模板。

对我们的 Digg 例程而言,我们会在项目的 App.xaml 文件中定义样式。这使得该样式可以在整个应用程序中,被跨页面、跨控件地重用:

首先让我们来为 Digg 页面的 <Border>控件(以及其中的<TextBlock> 标题)封装样式:

我们可以在 App.xaml 文件中,用下列标签来创建两个 Style 元素,分别封装 <Border> 和 <TextBlock> 的设置信息,这些设置在前面是内联定义的:

注意上述代码中,我们是如何为每个 Style 元素赋予一个唯一的 "Key" 值的。接下来我们就可以更新我们的 <Border>> 和 <TextBlock> 控件,让它们用这些 keys 来引用对应的样式定义。我们会使用一种叫做“标签扩展”(markup extensions) 的 XAML 特性来完成它。标签扩展用于非字面量的值需要被设置时(另一个适用场景是绑定表达式)。

我们还可以对 Page.xaml 文件中的其它控件也做类似的分离样式的处理,这样做之后,文件内容会变成类似这样:

用这种方式封装样式设定,可以让开发者更好的关注应用程序的行为语义,并且还可以让我们跨控件/页面的重用样式。

注:Beta1 中需要注意的一个问题是,当你输错样式名称和属性定义时,其错误信息不是很清楚(它会引发异常,但不告诉哪里设置不对)。这会在 Beta2 中得到改进。同时,如果你在加载样式时看到错误消息,请一定仔细查看拼写错误。

下一步

现在我们已经通过 Style 引用,将 Page.xaml 文件中的标签进行了一定的清理。让我们更进一步来自定义我们的故事数据的外观。

您可以跳到下一篇教程以了解具体方法: 《使用 ListBox 和 Databinding 来显示列表数据 》。

分享到:
评论

相关推荐

    Silverlight教程

    · 第四部分:使用 Style 元素更好地封装观感 (木野狐译) · 第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译) · 第六部分:使用用户控件实现主从表场景 · 第七部分:使用控件模板定制控件的...

    Silverlight 入门教程

    (8):使用样式封装控件观感 (9):使用控件模板 (10):使用用户控件 (11):数据绑定 (12):数据与通信之WebClient (13):数据与通信之WebRequest (14):数据与通信之WCF (15):数据与通信之ASMX ...

    一步一步学Silverlight 2系列

    Silverlight 2系列(8):使用样式封装控件观感 Silverlight 2系列(7):全屏模式支持 Silverlight 2系列(6):键盘事件处理 Silverlight 2系列(5):实现简单的拖放功能 Silverlight 2系列(4):鼠标事件处理 ...

    一步一步学Silverlight_2系列

    Silverlight 2系列(8):使用样式封装控件观感 Silverlight 2系列(7):全屏模式支持 Silverlight 2系列(6):键盘事件处理 Silverlight 2系列(5):实现简单的拖放功能 Silverlight 2系列(4):鼠标事件处理 ...

    Silverlight 2 Bible

    Silverlight 2 Bible 美国计算机宝典丛书(英文原版) PDF格式,共579页。 Part I: Silverlight Basics 第一部分: Silverlight的基础知识 ...第四部分:了解Silverlight的框架 Part V: Appendixes 第五部分:附录

    Silverlight中文版教程

    Silverlight中文版教程 实例教程 silverlight

    Silverlight开发教程.pdf

    Silverlight开发教程.pdf

    Silverlight 教程第一部【企业内部培训课件】

    这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。 使用 VS 2008 创建一个新的Silverlight...

    C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial 前38节)

    C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十)第一部分拓展小结篇 C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式 C#开发WPF/Silverlight动画及游戏...

    silverlight教程

    silverlight中文版教程,很详尽,我开始学silverlight的时候是零基础,这篇教程通俗易懂,看完后基本可以上手应付工作。。

    SILVERLIGHT完美入门教程

    SILVERLIGHT SILVERLIGHT 完美入门教程

    SilverLight入门系列教程-1

    SilverLight入门系列教程,本教程共计23课时。

    C#开发WPF/Silverlight动画及游戏系列源码(Part2)

    第四部分源码:WPFGameTutorial_PartIV.rar (31-35节) 第五部分源码:WPFGameTutorial_PartV.rar (更新至37节) 第六部分源码:[41节](QXGameEngine41.rar) [42节] [43节] [44节] [45节] [46节] [47节] [48节] [49...

    Silverlight/WPF开发必备:XAML语法

    Silverlight/WPF开发必备语言XAML语法详解。帮助您走进silverlight/WPF世界

    SilverLight 4开发教程

    SilverLight4开发教程,作者为Microsoft SilverLight MVP开发人员Matthew MacDonald,讲述非常详尽,想学习SilverLight开发的值得一看

    Silverlight(WPF)电子中文版教程

    Silverlight 在桌面和浏览器的结合中可以扮演一个很好的角色,它可以完美地把桌面程序“网络化”——这是未来的一个趋势。此外,微软越来越重视界面效果,而 Silverlight 可以带给用户比 Windows Vista 的“眼睛糖果...

    silverlight入门教程

    silverlight入门教程,让您软松入门silverlight.

    Silverlight教程 入门的好教材

    Silverlight教程 入门的好教材,内容详细

    Silverlight入门教程

    silverlight入门教程,入门Silverlight的开始,值得拥有

Global site tag (gtag.js) - Google Analytics