首页  ·  知识 ·  移动开发
WP7中资源和样式
音乐啤酒    Wphone  编辑:dezai   图片来源:网络
WP7中中的资源概念比较泛化,我们这里说的资源主要是控件内同质化的属性比如要对很多控件设置相同的颜色,字体大小,画刷等等属性,如果每个控件单独设置会有大量

WP7中中的资源概念比较泛化,我们这里说的资源主要是控件内同质化的属性

比如要对很多控件设置相同的颜色,字体大小,画刷等等属性,如果每个控件单独设置会有大量重复的工作,使用资源可以解决这个重复的问题,

也相当于html中的css的style样式。

但是在style的之前还有一个先决条件就是共享机制:资源resource。

1.资源

资源是共享的,很多类不能定义为资源,比如某些控件Textblock的单个实例是不允许多次使用的,因为在程序中他有唯一的Name,从UIElement派生的都不能共享成资源。

 

资源可以定义在Page页面级别上,在页面上可用,定义在App级别上,整个应用程序可用,定义的位置不同, 作用范围也不同

定义:

<phone:PhoneApplicationPage.Resources>
<LinearGradientBrush x:Key="brush">
<GradientStop Offset="0" Color="Pink"></GradientStop>
<GradientStop Offset="1" Color="SkyBlue"></GradientStop>
</LinearGradientBrush>
</phone:PhoneApplicationPage.Resources>

应用:

<HyperlinkButton NavigateUri="/Page1.xaml" Height="80" Foreground="{StaticResource brush}">GoToPage1</HyperlinkButton>
<Button x:Name="btn1" Click="btn1_Click" Content="Button1" Background="{StaticResource brush}"></Button>

在cs代码直接使用Resource["key"]来使用,记得要转换成相应的net对象。


可以使用X:key。也可以使用X:Name来定义资源。

不同的是,使用X:Name必须是唯一的,使用X:key在一个范围内必须唯一,但是在小范围之外是可以重复。

关键在cs代码方法如果是X:Name,可以直接把name当作cs的对象来使用,但是如果是key,必须使用this.Resources["brush"];来获得属性

 

2.样式Style

样式Style基本是为特定的元素类型分配的属性集合,除了有Key外,还有一个TargetType属性,设置作用的控件类型。

定义:

<Style x:Key="btnStyle" TargetType="Button">
<Setter Property="HorizontalAlignment" Value="Center"></Setter>
<Setter Property="Foreground" Value="{StaticResource brush}"></Setter>
<Setter Property="Width" Value="400"></Setter>
</Style>

使用:

<Button x:Name="btn1" Click="btn1_Click" Content="Button1" Style="{StaticResource btnStyle}"></Button>

 

样式的继承使用Baseon={StaticResource btnStyle}

继承父样式以后,可以直接使用父样式中的定义,如果有重复的定义,子样式会覆盖父样式的内容

本文作者:音乐啤酒 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的