XAML实例教程系列 - 资源(Resources)

本文介绍了XAML资源的概念,它类似于CSS样式表,用于实现对象的重复调用。在Windows 8 Metro应用开发中,资源不仅限于样式定义,还包括控件模板和动画设计。通过ResourceDictionary,可以管理资源并方便重用,提升代码维护一致性。XAML仅支持静态资源(StaticResource),资源作用域遵循就近原则。文章还探讨了合并资源字典和主题资源字典,用于外部资源引用和多主题支持。
摘要由CSDN通过智能技术生成

在Windows 8 Metro应用开发中,XAML主要用于应用界面设计,无论是开发人员还是设计人员经常会设计自定义用户界面或者控件行为,其中会涉及到不同方面的代码设计,例如控件模板,控件样式,动画设计等。为了方便设计,管理和重复利用这些通用代码,XAML提出了资源(Resources)的概念。本篇将介绍 XAML资源(Resource)。

 

XAML资源(Resources)概念 

 

资源(Resources),其概念和传统Web应用中的Cascading Style Sheets(CSS)样式表类似,其目的为了实现对象的重复调用。在Windows 8 Metro应用开发中,资源的概念不仅仅局限于对控件样式的定义,而且还包括对控件模板的定义,对字体的控制等。在实际项目中,开发人员可以在资源中设置多种不同控件属性,在多个页面调用通用资源代码, 这样不仅有助于代码重利用,同时有助于应用维护的一致性。

 

XAML中定义资源的语法格式如下:

 

 

<根元素对象.Resources>
     <资源定义 />
</根元素对象.Resources>
 

 

 

在Windows 8 Metro应用开发中,每个Framework对象都支持Resources属性,也就是说,可以在不同控件或者页面定义特定的Resources, 例如,在Grid, Button定义Resources,

    

<Grid>

        <Grid.Resources>
           <LinearGradientBrush x:Key="bgBrush" StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="Yellow" Offset="0.0" />
                <GradientStop Color="Blue" Offset="0.75" />
                <GradientStop Color="Green" Offset="1.0" />
           </LinearGradientBrush>
        </Grid.Resources>
 
        <Button>
            <Button.Resources>
                 ....
            </Button.Resources>
        </Button>

</Grid> 

 

XAML资源字典(ResourceDictionary) 

 

XAML资源的概念在一定程度上简化了XAML页面代码,对于管理批量资源代码集合,XAML还提供<ResourceDictionary>资源字典标记进行声明。

在Windows 8 Metro应用开发中,所有能够被定义在资源字典(ResourceDictionary)的对象必须是可被共享使用的。可以被应用于资源字典的对象如下(来自MSDN):

1. Style and Template

2. Brushes and Colors

3. Animation types (Storyboard)

4. Transforms

5. Matrix and Maxtrix3D 

6. Point 

7. Thickness and CornerRadius

8. XAML intrinsic data types

 

XAML资源字典(ResourceDictionary)的定义

  

在资源字典(ResourceDictionary)中,每一个资源项必须定义x:Key,也就是所谓的唯一标识的资源名称,这样可以方便读取访问。例如以下代码,在Grid.Resources中定义资源x:Key = "bgBrush", 我们可以在Button中调用资源x:Key,应用资源到控件。

 

方法一: 在XAML中定义资源字典(ResourceDictionary), 

复制代码
< Grid  x:Name ="LayoutRoot" >
         < Grid.Resources >
             < ResourceDictionary >
                 < LinearGradientBrush  x:Key ="bgBrush"  StartPoint ="0.5,0"  EndPoint ="0.5,1" >
                 < GradientStop  Color ="Yellow"  Offset ="0.0"   />
                 < GradientStop  Color ="Blue"  Offset ="0.75"   />
                 < GradientStop  Color ="Green"  Offset ="1.0"   />
             </ LinearGradientBrush >
             </ ResourceDictionary >   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值