windowsphone开发日记(二)--应用资源配置与使用

    写完首次启动欢迎页面后,立刻着手编写其他页面。对于一个后台程序员来说写界面也是个体力活,但却寓乐其中。正写得开心时,心中突然萌生一丝愧疚感,原来我吧字符串都写在了界面上,很多颜色等属性也直接写在节点中,看来我功力还是不够。还好悬崖勒马,于是停下手头工作,开始配置应用资源。

    1.字符串资源

    如果我没有发现这个问题,就一直写下去,老板来告诉我:“呃,这个app名字要改成**哈”。我只能一个个去找一个个去改,很麻烦。也就是要注意重用性嘛,天朝码农都懂的。这时候如果老板又来说:“呃,这个我们这个app同时还要给欧美的用户使用的哈”。还是要用到字符串资源。

    首先我们在项目下建立一个名为String的文件夹,这个文件夹下再建立两个文件夹,名字分别为zh-CN和en-US,文件名不能写错,因为这是一个约定,或者理解为潜规则,我不说你不说,但它确实存在联系,也不需要特意告诉应用这个文件夹是用来干嘛的。很明显这两个文件夹代表两种不同的语言,我们在每个文件夹下分别添加一个新建项,选择资源文件,创建两个resw文件,名字默认就好了,看起来就像这样的。

    这里只看中文的资源Resources.resw,在文件中添加一条资源名称为abbSetting.Label,值为设置。然后就可以直接在任何地方使用啦。

    (1)在xaml中的用法

<CommandBar>
    <AppBarButton Icon="Setting" x:Uid="abbSetting"/>
</CommandBar>

    这样酒吧资源中定义的值应用到AppBarButton的Label属性上去了。

    (2)在C#中的用法

var res =  new Windows.ApplicationModel.Resources.ResourceLoader();
String test = res.GetString("String1");

我发现在代码中没法获取abbSetting.Label这样的资源,如果你这样定义String1职位Hello就可以通过上面这段代码获取到hello。


    2.样式(模板)资源

    windowsphone其实继承了wpf很多优秀的用法,就比如样式模板和资源模板,可以写出很多漂亮的东西来。把他们放在一起是因为我觉得他们有很多互通的地方。利用好这个资源不仅可以做到代码重用,还可以更方便对应用的样式进行统一把握。

    wp系统本身提供了很多资源,你可以在这个路径下找到这些资源:C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\Design\ 。我们还可以自己定义样式资源(只说说几个简单的资源定义)

    自定义资源:在项目下新建Resources文件夹,这个名字就随便了。下面添加新建项选择资源字典,ok。先不管这个文件的内容,打开App.xaml文件,添加如下代码:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Resources/Dictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

    这个就相当于把刚刚建好的文件引用到你的应用中来了,MergedDictionaries节点下可以写多个文件的,根据开发需求而定。再来看Dictionary.xaml文件里面怎么写,下面是文件全部内容:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HotSpotTrack">

    <Color x:Key="MyThemeColor">#303132</Color>
    <Color x:Key="MyBackgroundColor">#FFFFFF</Color>
    <SolidColorBrush x:Key="MyThemeBrush" Color="{StaticResource MyThemeColor}"/>
    <SolidColorBrush x:Key="MyBackgroundBrush" Color="{StaticResource MyBackgroundColor}"/>
</ResourceDictionary>

这里我简单得定义了两种颜色和两把画刷,画刷分别用两种颜色作为属性。这样一个样式资源文件就配置好了。使用方法:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="50"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>
    <Canvas Grid.Row="0" Background="{StaticResource MyThemeBrush}" >
        <Image Source="/Assets/image/loading_main.png" Height="30" Canvas.Left="10" Canvas.Top="10"/>
        <TextBlock Foreground="White" FontSize="20" x:Uid="AppName" Canvas.Left="50" Canvas.Top="15"/>
    </Canvas>
    <StackPanel Grid.Row="1" Background="{StaticResource MyBackgroundBrush}"/>
</Grid>

在这段代码中,两把刷子分别应用到了两个容器的BackGround属性上了。


以上属于个人开发过程中的个人理解,请大家多多指教。有些东西说的可能不是很详细,有问题可以留在评论中,我们一起探讨学习。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值