Windows Phone 7 定义和使用字典资源(ResourceDictionary)
2011-03-12 12:47
369 查看
1、首先需要创建一个资源字典的文件,也就是一个xaml的文件。
文件的语法格式如下
Test.xaml
Style的x:Key属性是资源字典里面的资源的唯一的标示符,也是作为在其他页面调用的一个唯一的Key来进行调用。
2、调用资源资源中的资源
在MainPage.xaml页面中添加资源字典,语法如下
ResourceDictionary.MergedDictionaries 获取 ResourceDictionary 字典的集合,这些字典构成了合并字典中的各种资源字典。
如果想在程序启动时加载所有的资源,可以再App.xaml页面上添加资源的加载,语法如下
3、使用字典资源中的资源
在MainPage.xaml页面中的控件调用自定义的资源,语法如下
调用字典资源中x:Key值为TextBlockStyle1的样式资源
调用字典资源中x:Key值为cityDetails的数据模板资源
调用字典资源中x:Key值为ControlTemplateTest的控件模板资源
也可以在cs页面调用字典资源,语法如下
更多的介绍请参考MSDN的Silverlight资源字典介绍
MSDN的Silverlight资源字典详细介绍
http://msdn.microsoft.com/zh-cn/library/cc903952(v=VS.95).aspx
文件的语法格式如下
Test.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"> <!--定义样式资源--> <Style x:Key="TextBlockStyle1" TargetType="TextBlock"> <Setter Property="Foreground" Value="Orange"/> <Setter Property="FontSize" Value="24"/> <Setter Property="VerticalAlignment" Value="Bottom"/> </Style> <!--定义数据模板资源--> <DataTemplate x:Key="cityDetails"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="90" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Text="Activity: " Grid.Column="0" Grid.Row="0" Style="{StaticResource detailsSmallTitle}" /> <TextBlock Text="{Binding Activity}" Grid.Column="1" Grid.Row="0" Style="{StaticResource detailsSmallText}" /> …… </Grid> </DataTemplate> <!--定义控件模板资源--> <ControlTemplate x:Key="ControlTemplateTest" TargetType="chartingToolkit:Chart"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <visualizationToolkit:Title Grid.ColumnSpan="2" Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" /> …… </Grid> </ControlTemplate> </ResourceDictionary>
Style的x:Key属性是资源字典里面的资源的唯一的标示符,也是作为在其他页面调用的一个唯一的Key来进行调用。
2、调用资源资源中的资源
在MainPage.xaml页面中添加资源字典,语法如下
<phone:PhoneApplicationPage.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Test.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </phone:PhoneApplicationPage.Resources>
ResourceDictionary.MergedDictionaries 获取 ResourceDictionary 字典的集合,这些字典构成了合并字典中的各种资源字典。
如果想在程序启动时加载所有的资源,可以再App.xaml页面上添加资源的加载,语法如下
<Application x:Class="DataVisualizationOnWindowsPhone.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> <Application.Resources> <!-- 添加资源 --> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Test.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> …… </Application>
3、使用字典资源中的资源
在MainPage.xaml页面中的控件调用自定义的资源,语法如下
调用字典资源中x:Key值为TextBlockStyle1的样式资源
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <TextBlock Text="Some Text" Style="{StaticResource TextBlockStyle1}"/> </StackPanel>
调用字典资源中x:Key值为cityDetails的数据模板资源
<ContentControl ContentTemplate="{StaticResource cityDetails}" HorizontalAlignment="Left" x:Name="DetailsControl" Margin="0,0,0,5" />
调用字典资源中x:Key值为ControlTemplateTest的控件模板资源
<charting:Chart x:Name="myChart" Style="{StaticResource PhoneChartStyle}" Template="{StaticResource ControlTemplateTest}"> …… </charting:Chart>
也可以在cs页面调用字典资源,语法如下
ControlTemplate template; template = Application.Current.Resources["ControlTemplateTest"] as ControlTemplate; myChart.Template = template;
更多的介绍请参考MSDN的Silverlight资源字典介绍
MSDN的Silverlight资源字典详细介绍
http://msdn.microsoft.com/zh-cn/library/cc903952(v=VS.95).aspx
相关文章推荐
- Windows Phone 7 定义和使用字典资源(ResourceDictionary)
- windows phone 7 中怎样定义和使用资源(Resource)
- windows phone 7 中怎样定义和使用资源(Resource)
- 定义和使用字典资源(ResourceDictionary)
- 如何使用和定义字典资源(ResourceDictionary)
- wpf使用资源字典组织资源
- 使用swithview类时,解决 某个资源文件未定义的方法
- Android-自己定义图像资源的使用(1)
- 如何使用array资源文件中定义的资源数组
- 使用数据库定义资源、角色和权限
- Android定义字符串数组资源并在程序中使用
- Android定义字符串数组资源并在程序中使用
- 使用额外资源定义的文件出现的问题
- Delphi 中字符串资源的定义与使用
- Android res文件夹下资源定义及使用
- WPF使用资源字典组织资源
- C#使用资源字典
- Android 学习笔记4:资源文件的定义和使用
- wpf使用资源字典组织资源
- 11.11 系统中的数据字典定义是什么,如何使用?