zoukankan      html  css  js  c++  java
  • windows phone 7 中怎样定义和使用资源(Resource)

    1. 系统资源。

    在wp7开发中可以看到很多使用系统资源(resource)的例子,例如默认的新page:

     http://blog.csdn.net/matrixcl/article/details/7057291 (转)

    [html] view plaincopy
     
    1. <span style="font-size:18px;"><TextBlock x:Name="PageTitle" Text="PageTitle" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/></span>  

    这里的PhoneTextTitle1Style便是资源。

    系统的资源定义在这里:C:Program FilesMicrosoft SDKsWindows Phonev7.1Design , 根据安装路径不同,这个路径有一些差异。

    这个路径下有DarkBlue、DarkBrown、LightBlue等文件夹,分别对应手机上选定的主题色+高亮色。

    DarkBlue为例,.DarkBlueThemeResources.xaml 中PhoneTextTitle1Style是这样定义的:

    [html] view plaincopy
     
    1. <span style="font-size:18px;"><Style x:Key="PhoneTextTitle1Style" TargetType="TextBlock" BasedOn="{StaticResource PhoneTextBlockBase}">  
    2.   <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiLight}"/>  
    3.   <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeExtraExtraLarge}"/>  
    4. </Style>  
    5. </span>  

    PhoneFontFamilySemiLight 和 PhoneFontSizeLarge 的定义

    [html] view plaincopy
     
    1. <span style="font-size:18px;"><FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP SemiLight</FontFamily>  
    2. </span>  
    [html] view plaincopy
     
    1. <span style="font-size:18px;"><System:Double x:Key="PhoneFontSizeExtraExtraLarge">72</System:Double></span>  



    2. 自定义资源

    资源可以定义在3个地方:Page.xaml, App.xaml 及单独的资源辞典文件中。

    3个地方定义没什么差别,这是使用时存在细微差别。

    以页面中定义为例子:

    [html] view plaincopy
     
    1. <span style="font-size:18px;">    <phone:PhoneApplicationPage.Resources>  
    2.         <Color x:Key="myForce" >Red</Color>  
    3.         <Color x:Key="myBack" >GreenYellow</Color>  
    4.         <system:String x:Key="myString" >12345</system:String>  
    5.         <SolidColorBrush x:Key="myForceBrush" Color="Orange" />  
    6.         <SolidColorBrush x:Key="myBackBrush" Color="{StaticResource myBack}" />  
    7.     </phone:PhoneApplicationPage.Resources></span>  


    system是命名空间,要使用它需要在前面加上一行

    [html] view plaincopy
     
    1. <span style="font-size:18px;">    xmlns:system="clr-namespace:System;assembly=mscorlib"  
    2. </span>  


    3. Xaml中使用资源

    [html] view plaincopy
     
    1. <span style="font-size:18px;"><TextBlock x:Name="ApplicationTitle" Text="{StaticResource myString}" Foreground="{StaticResource myForceBrush}" Style="{StaticResource PhoneTextNormalStyle}"/></span>  

    4. MainPage.Xaml.cs文件中使用资源

    [csharp] view plaincopy
     
    1. <span style="font-size:18px;"if (this.ApplicationBar == null)  
    2.  {  
    3.      this.ApplicationBar = new ApplicationBar();  
    4.      this.ApplicationBar.MenuItems.Add(new ApplicationBarMenuItem() { Text = "Menu1" });  
    5.  }  
    6.   
    7.  this.ApplicationBar.BackgroundColor = (Color)this.Resources["myBack"];  
    8.  this.ApplicationBar.ForegroundColor = (Color)Application.Current.Resources["PhoneAccentColor"];</span>  

    其实"PhoneAccentColor"可以通过this.Resources 加载到,但反之不行,因为资源"myBack"是定义在Page中的,Application类中不可见

    [csharp] view plaincopy
     
      1. <span style="font-size:18px;">this.ApplicationBar.ForegroundColor = (Color)this.Resources["PhoneAccentColor"];</span>  
  • 相关阅读:
    仿pinterest实现瀑布流布局效果
    .NET执行cmd时,如何调试命令的执行效果
    在Sharepoint 2007 整合Discuz Nt论坛
    如何使用EWS获取邮件及其附件
    启明星win7桌面天气预报软件下载与使用方法(带时间)
    【helpdesk】启明星helpdesk7.0版本里,实现邮件提交功能介绍和原理
    微软.NET设计上的一个错误(从.NET1.14.0),不知道以后.NET会不会修复这个错误
    什么是Traceback Ping
    用ASP生成RSS以及讀取RSS
    [轉]訂單編號方式探討
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/3639305.html
Copyright © 2011-2022 走看看