`
gstarwd
  • 浏览: 1525252 次
  • 性别: 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 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完美入门教程

    【SILVERLIGHT完美入门教程】 Silverlight是微软推出的一款基于.NET Framework的浏览器插件,旨在为Web应用程序提供丰富的媒体体验和交互式用户界面。它曾经是开发富互联网应用程序(RIA)的重要工具,特别是在...

    Silverlight/WPF开发必备:XAML语法

    本文将详细介绍XAML的基本概念、语法结构以及在Silverlight和WPF中的应用实践,旨在帮助开发者更好地掌握XAML,从而更加高效地进行Silverlight和WPF应用开发。 #### 二、XAML概述 ##### 2.1 什么是XAML? XAML是一...

    Silverlight入门教程.pdf

    ### Silverlight入门教程知识点概述 #### 一、Silverlight简介 - **定义**:Silverlight是微软推出的一款用于创建和部署跨浏览器、跨平台的丰富互联网应用程序(RIA)的技术。 - **特点**: - 跨平台兼容性:支持...

    SilverLight入门系列教程-1

    本教程作为SilverLight入门系列的第一部分,将带领初学者逐步熟悉这个技术平台的基本概念和核心功能。 ### 1. SilverLight简介 SilverLight是一种轻量级的开发工具,它通过XAML(Extensible Application Markup ...

    Silverlight开发教程.pdf

    Silverlight开发教程是一份关于如何使用Microsoft Silverlight技术进行开发的详细指南。Silverlight是微软推出的一种跨浏览器、跨平台的插件,用于开发与交付下一代基于网络的应用程序和媒体体验。本教程将会介绍...

    SilverLight 4开发教程

    ### SilverLight 4 开发教程知识点总结 #### 一、SilverLight 4 概述 - **定义**:SilverLight 是由微软推出的一种用于创建丰富互联网应用(RIA)的跨浏览器、跨平台的框架。 - **特点**: - 跨平台支持:能够在...

    silverlight教程

    2. **XAML**: 银光使用Extensible Application Markup Language (XAML)来描述用户界面,这是一种基于XML的语言,允许声明性地构建UI元素。 3. **编程模型**: Silverlight支持.NET Framework的子集,包括C#、VB.NET...

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

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

    Silverlight 2教程中文版

    4. **这是8个系列教程的第四部分.mht**:可能讲解了数据访问和数据服务集成,如ADO.NET Data Services或者WCF RIA Services,使得 Silverlight 应用能够与服务器端数据源进行通信。 5. **这是8个系列教程的第五部分...

    Silverlight教程.zip

    **Silverlight技术详解** Microsoft Silverlight,作为一款曾经流行的客户端应用程序框架...通过学习Silverlight,开发者可以更好地理解客户端应用的构建原理,同时也能借鉴其在用户体验和多媒体处理方面的优秀实践。

    silverlight教程Part1

    本教程分为两部分,这是第一部分,旨在帮助初学者快速掌握Silverlight的基本操作和核心概念。 Silverlight是由微软开发的一种富互联网应用程序(RIA)平台,主要用于构建具有丰富视觉效果和交互性的网页应用程序,...

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

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

Global site tag (gtag.js) - Google Analytics