如何使用资源和样式调整控件外观
2012-05-17 22:52
405 查看
首先我们看一段xaml代码
在这里你可能注意带花括号设置了TextBlock的Style属性.这就意味着表达式在运行时进行了计算,属性被设置为计算后的值.本段xaml使用名为PhoneTextNormalStyle的StaticResource来设置Style属性.
而加载XAML时, StaticResource的解析是通过沿XAML树查找所有资源字典中的资源来完成的.如果在当前页面的任何位置都找不到时,则会查找位于App.xaml文件中的应用程序范围的资源字典.
资源字典仅是一个对象的集合,在应用程序中可以重复使用.在下面的代码片段中,可以看到两个在应用程序范围资源字典中定义资源:Color以及SolidColorBrush.每个XAML元素的x:key特性都声明了一个从代码中访问资源时所需的键.你还会注意到SolidColorBrush资源时间上引用了Color资源.这时资源的顺序很重要.如果先定义SolidColorBrush资源,当解析器定位时就会抛出一个未找到资源的异常.
接着我们在来看一段XAML片段
你会注意到其中定义了一个TargetType特性,它用来确定可以应用该Style的控件类型.在本片段中被定义为应用所有TextBlock控件. Style还可以继承其他的Style.上面片段中使用BasedOn属性继承了名为MyBaseStyle的Style,得到MyBaseStyle中Foreground和FontSize并使用自己定义的Foreground覆盖父类属性.
<TextBlock x:Name="ApplicationTitle" Text="BlendPro" Style="{StaticResource PhoneTextNormalStyle}"/>
在这里你可能注意带花括号设置了TextBlock的Style属性.这就意味着表达式在运行时进行了计算,属性被设置为计算后的值.本段xaml使用名为PhoneTextNormalStyle的StaticResource来设置Style属性.
而加载XAML时, StaticResource的解析是通过沿XAML树查找所有资源字典中的资源来完成的.如果在当前页面的任何位置都找不到时,则会查找位于App.xaml文件中的应用程序范围的资源字典.
资源字典仅是一个对象的集合,在应用程序中可以重复使用.在下面的代码片段中,可以看到两个在应用程序范围资源字典中定义资源:Color以及SolidColorBrush.每个XAML元素的x:key特性都声明了一个从代码中访问资源时所需的键.你还会注意到SolidColorBrush资源时间上引用了Color资源.这时资源的顺序很重要.如果先定义SolidColorBrush资源,当解析器定位时就会抛出一个未找到资源的异常.
<phone:PhoneApplicationPage.Resources> <Color x:Key="ButtonBackColor"> #FFFF5C5C </Color> <SolidColorBrush x:Key="ButtonBackBrush" Color="{StaticResource ButtonBackColor}"/> </phone:PhoneApplicationPage.Resources>
接着我们在来看一段XAML片段
<phone:PhoneApplicationPage.Resources> <Style x:Key="MyBaseStyle" TargetType="TextBlock"> <Setter Property="Foreground" Value="{StaticResource PhoneFontFamilySemiLight}"/> <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}"/> </Style> <Style x:Key="MyTextBlockStyle" TargetType="TextBlock" BasedOn="{StaticResource MyBaseStyle}"> <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/> </Style> </phone:PhoneApplicationPage.Resources>
你会注意到其中定义了一个TargetType特性,它用来确定可以应用该Style的控件类型.在本片段中被定义为应用所有TextBlock控件. Style还可以继承其他的Style.上面片段中使用BasedOn属性继承了名为MyBaseStyle的Style,得到MyBaseStyle中Foreground和FontSize并使用自己定义的Foreground覆盖父类属性.
相关文章推荐
- [WinForm每日一帖] 如何使用UltraToolTipManager为控件提供带样式的ToolTip
- Flex中如何通过设置fontFamily样式在ComboBox控件中使用自定义嵌入字体的例子
- android修改控件外观(使用drawable资源)
- 从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
- Flex中如何通过设定headerStyleName样式在Accordion控件中使用嵌入字体的例子
- 使用样式更改多个控件的外观
- 从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
- 从寻找资源的习惯上谈如何获得好的代码及控件(使用Koders查找)
- Flex中如何通过设置fontFamily样式在NumericStepper控件中使用嵌入字体的例子
- MFC 在多字节编码 下编程 如何 使用新样式控件。
- (一)关于SWT程序的基本架构,如何使用控件以及使用Image,Font,Color等图形资源内容
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观
- 【Silverlight】Bing Maps开发应用与技巧六:使用样式美化图钉(Pushpin)控件的ToolTip外观 推荐
- 关于winform 中 使用Dock 之后 如何调整控件位置的讨论
- 如何在动态库中使用对话框资源(转) .
- CTabCtrl - 如何使用TabCtrl控件
- QT 资源系统(如何使用小图片做图标)
- 如何使用串口控件MSComm在dotNet下编程(转)
- android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题