Windows Phone开发(15):资源

原文:Windows Phone开发(15):资源

活字印刷术是我国“四大发明”之一,毕昇在发明活字印刷术之后,他很快发现一个问题,随着要印刷资料的不断增加,要用到的汉字数目越来越多,于是,他必须寻找一种有效的办法去管理那些刻有汉字的立方体(暂且就叫立方体,其实的确是个立方体),所以,他就和助手们一起努力,为这些立方体进行记录,有标识地放好,在印刷过程中用到哪些字,就直接取出来,不用了就放回去,既环保又方便。
这就是资源,水、空气、阳光也是资源,煤、铁矿物也是资源,只不过有些可再生,有些不可再生罢了。
何为资源?资源就是客观存在的,当我们需要时可以拿来利用的一切可支配或可重新组合的东西,如人力资源、人脉资源等。
如果做过网页,应该了解CSS是用来干啥的,其实,我们今天要讨论的资源,和CSS样式表的概念基本一样,就是把一些经常用到的东西保存起来,可以供应用程序中不同地方重复调用,这样我们就不用为每个控件设置样式,我们可以样式保存到资源列表,用到就取出来,不用重复定义。

下面看看这段XAML,上面有4个TextBlock,我现在希望每个TextBlock的字体字号为37.5,当然,简单的值可以方便设置,如果值很复杂,如上一篇文章说的模板,那你就很痛苦了,要为每个控件做一个模板。

    <StackPanel Orientation="Vertical">
        <TextBlock Text="第一块文本"/>
        <TextBlock Text="第二块文本"/>
        <TextBlock Text="第三块文本"/>
        <TextBlock Text="第四块文本"/>
    </StackPanel>

怎么做呢?因为字号为Double类型,所以首先要引入命名空间。怎么做呢?因为字号为Double类型,所以首先要引入命名空间。

xmlns:sys="clr-namespace:System;assembly=mscorlib"

接着,在页资源集合中定义一个字号资源,注意要设置key,每个资源都有唯一的键,应用程序是通过这个键来寻找对应的资源的。接着,在页资源集合中定义一个字号资源,注意要设置key,每个资源都有唯一的键,应用程序是通过这个键来寻找对应的资源的。

    <StackPanel Orientation="Vertical">
        <TextBlock Text="第一块文本" FontSize="{StaticResource fontSize}" />
        <TextBlock Text="第二块文本" FontSize="{StaticResource fontSize}" />
        <TextBlock Text="第三块文本" FontSize="{StaticResource fontSize}" />
        <TextBlock Text="第四块文本" FontSize="{StaticResource fontSize}" />
    </StackPanel>

 

资源的引用方式很简单,放到一对大括号中(扩展标记),StaticResource是指明是静态资源,注意,在Silverlight中只能用静态资源,如果是WPF,还有动态资源,空格后面就是资源的key,不要问我为什么。

再看一例,有三个按钮,我希望它们都拥有渐变背景色,水平左对齐,垂直顶端对齐,宽185,高50.

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Button Content="按钮一" Height="72"  Margin="10,10,0,0" Name="button1"  />
            <Button Content="按钮二" Height="72"  Margin="10,92,0,0" Name="button2"  />
            <Button Content="按钮三" Height="72"  Margin="10,174,0,0" Name="button3"  />
        </Grid>

现在我只要在资源集合里声明一个样式,并把它应用到每个按钮上。

<phone:PhoneApplicationPage
    x:Class="ResSampleApp.Page2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
    shell:SystemTray.IsVisible="True">
    <phone:PhoneApplicationPage.Resources>
        <Style x:Key="buttonStyle" TargetType="Button">
            <Setter Property="Background">
                <Setter.Value>
                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                        <GradientStop Color="Yellow" Offset="0"/>
                        <GradientStop Color="Red" Offset="1"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="VerticalAlignment" Value="Top"/>
            <Setter Property="Width" Value="185"/>
            <Setter Property="Height" Value="50"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
    </phone:PhoneApplicationPage.Resources>

    <Grid>
        <Button Content="按钮一" Height="72"  Margin="10,10,0,0" Name="button1" Style="{StaticResource buttonStyle}" />
        <Button Content="按钮二" Height="72"  Margin="10,92,0,0" Name="button2" Style="{StaticResource buttonStyle}" />
        <Button Content="按钮三" Height="72"  Margin="10,174,0,0" Name="button3" Style="{StaticResource buttonStyle}" />
    </Grid>

</phone:PhoneApplicationPage>

时间: 2014-03-05
Tags: windows, http

Windows Phone开发(15):资源的相关文章

windows 8 metro 开发学习资源链接

原文 http://www.cnblogs.com/icuit/archive/2012/05/30/2525979.html windows8 metro开发资源目前还是以MSDN为主,做了一个list方便自己点击,朋友们也可以收藏,欢迎一起交流.我会随时更新 1.开发环境      系统环境: windows 8 RC版64位中文  http://iso.esd.microsoft.com/WRPDL/D29D6C5B1D8AF956B5DA9DF738CFD92DFD4F6C8FB/Win

Windows Phone开发(36):动画之DoubleAnimation

原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要的框架是Silverlight,在WP中也发挥了Silverlight的许多优点,可能不少人说,Silverlight就是和Flash差不多吧,当你深入了解了Silverlight后,你会发现,其实不然,Silverlight更偏重于数据处和企业级应用.   好了,F话不多说,开始吹我们今天的牛皮吧

【万里征程——Windows App开发】ListView&amp;amp;GridView之分组

本文承接[万里征程--Windows App开发]ListView&GridView之添加数据. 在上一篇中我们已经了解了怎样将数据绑定到ListView或GridView,但既然要用到这两个控件往往是因为数据繁多,那么几乎就不可避免的要让其能够分组.我们所绑定的数据源可能是项列表,其中的每个项甚至还有其自己的项,那么问题就来了. 一时不会也想不出什么宏伟的例子,就做一个简单的闹钟的时间表的ListView和GridView吧.那么先在项目中添加一个类,最好在Shared下.内容都是很简易的,闹

【万里征程——Windows App开发】设置共享(共享源和共享目标)

上一篇博客简单介绍了通过粘贴板来共享数据,这一节将会添加更为强大的功能哦. 以下就是大概的样式了,随便看看就好了,这都不是重点. <Grid Background="AliceBlue"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition /> <RowDefinition Height="auto"/>

微软宣布Windows 8开发完成 正式发布RTM版本

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Windows 8操作系统已经正式向硬件制造商发布RTM版.(TechWeb配图) 新浪科技讯 北京时间8月2日凌晨消息,微软今天宣布,Windows 8操作系统已经正式向硬件制造商发布RTM版,这标志着Windows 8的代码开发工作已经完成.自此,微软的合作伙伴便可以开始为Windows 8的全球正式上市准备相关的硬件产品. 微软称,自从2011年9月Windows 8开发者预览版发布以来,微软不断地收到来自全球用户和开发人员的积极反馈,有效地

2012年度最新免费web开发设计资源荟萃

日期:2012-9-11  来源:GBin1.com 免费的设计和开发资源大家肯定都喜欢,在这篇文章中我们收集了7月到8月的最新免费开发设计资源,包含PSD UI套件,图标,javascript,jQuery插件等等,绝对是web开发设计人员必备,如果你也喜欢,过来看看吧! 1. Smart Time Ago(jQuery插件) 2. 使用javascript开发超棒的动画文字书写效果 3. Magnifying Glass for Image Zoom (jQuery/CSS3) 4. Set

Windows 8开发入门(六)Windows 8中的Popup使用方式

在上一篇文章中我们将了替代Silverlight中MessageBox的MessageDialog控件,本篇文章将讲诉另外一种弹 出提示窗口的控件Popup. 一.我们认识Popup控件的IsLightDismissEnabled属性,这个属性设置为 true的时候,点击非Popup控件外任何区域将关闭Popup. <Button Content="弹出窗口一" Name="btn1" Width="108" Margin="16

论道Windows Phone(二) 如何学习Windows Phone开发?

虽然Windows Phone还没正式进入中国大陆市场,但关注它的国内开发者已经越来越多了,这个时候摆在面前的一个问题就是,如何学习 Windows Phone开发?如果你对此感到无从入手,或许这篇文章可以给你一点启发. 新的体验,新的开始 学习Windows Phone开 发的目的是为了开发Windows Phone应用,但什么样的应用才算好的应用呢?毫无疑问,我们需要一些榜样作为参照,我们希望了解一个标准 的Windows Phone应用应该是怎样的,而这正是学习Windows Phone开

Windows App开发之开发准备

操作系统及SDK 操作系统 显而易见,想要开发Windows App就得在Windows 8/8.1/10上进行,老旧的Windows XP/Vista/7已经不能满足时代的需要了.当然,在Windows App的发展过程中,其本身也有着较大的变动,为了使用新的特性,建议使用Windows 10.我在写这个教程时,Windows 10正式版并未面世,因此暂时未介绍Windows 10上的新特性,随后会继续更新,欢迎您的继续关注. 操作系统除了在官网下载之外,还可以在DreamSpark等地方下载