现在的位置: 首页 > 综合 > 正文

跟互联力量学Silverlight之四:XAML资源的用法

2012年12月30日 ⁄ 综合 ⁄ 共 897字 ⁄ 字号 评论关闭

本篇讲解XAML的资源的使用。我们首先回忆在跟互联力量学Silverlight之三_XAML的属性和事件一文中,使用GradientBrush绘制了Grid的背景颜色,本篇用资源的方式来扩展前文的样式的应用,首先把LinearGradinetBrush放到UserControl的复合属性Resources里面,如下:

图1

最重要的是,使用了x:key属性(有关x:key请参考XAML是什么),表示这个Brush在资源集合中的索引键。接下来,在Grid中使用这个x:key,给background属性使用资源,如: <Grid x:Name=”grid1″ Background=”{StaticResource brush1}”>….</Grid>,在VS2010的设计里面看效果如下:

图2

从显示效果可以看出,用资源的方式也可以定义外观,你可能会说这有什么作用呢,分析,如果现在页面上有多个元素,要使用同一种样式,很明显只用把样式定义一次,提供每个元素引用就可以了,这个概念类似CSS。接着,在页面上放两个按钮,我们让按钮都有渐变的背景效果,如下:

图3

实现上图的完整XAML代码如下:

图4

你理解了上面的内容,得出结论,用Resources实现了同种样式应用在多个的元素上,现在我们讨论第二种现象,如果这两个Button不在同一页面,那这种效果还可以实现吗,显然是不能的,所以我们把LinearGradinetBrush放到所有页面可以共享的地方:app.xaml里面。

从解决方案打开app.xaml,看到默认的模板已经准备好了<Application.Resources>标记,现在直接把前步骤写好的内容,帖进去,如下:

图5

把图4里面的<StackPanel.Resources>代码都删除,运行后的效果和图3相同,这样实现了在多个页面中使用同一样式资源。

小结,本文分析了同一页面多个元素,不同页面多个元素使用资源的方法,文中提到的有关Silverlight样式,在后续有专门的内容详细讲解。版权所有 互联力量,原文出自:http://www.foxitjob.com/2010/06/329.html

抱歉!评论已关闭.