如何将样式应用于整个silverlight应用程序?
我已经创建了两种不同的网格背景和单选按钮样式在我的如何将样式应用于整个silverlight应用程序?,silverlight,silverlight-3.0,Silverlight,Silverlight 3.0,我已经创建了两种不同的网格背景和单选按钮样式在我的 App.xaml. 用户可以选择任何样式来更改页面外观,即:更改radiobutton的背景和样式 现在,当我单击raduio按钮时,应用程序将导航到另一个页面,样式将消失 是否有方法在应用程序级别设置样式,或者我需要将styleVar存储为全局变量,并在第二个页面加载时检查,然后根据styleVar应用样式将有问题的样式放入App.xaml文件中。application objects Resources属性使样式和其他资源在整个应用程序中
App.xaml.
用户可以选择任何样式来更改页面外观,即:更改radiobutton的背景和样式
现在,当我单击raduio按钮时,应用程序将导航到另一个页面,样式将消失
是否有方法在应用程序级别设置样式,或者我需要将
styleVar
存储为全局变量,并在第二个页面加载时检查,然后根据styleVar
应用样式将有问题的样式放入App.xaml
文件中。application objects Resources属性使样式和其他资源在整个应用程序中可用。只需在App.xaml中去掉样式的x:Key部分即可。这是Silverlight 4的一项新功能。是的,正如Jeff Wilcox所说,Silverlight 4中的隐式样式是一个新事物。因此,如果您想要创建一个样式,该样式是范围XAML文件中该类型的所有控件的默认样式,或者如果放置在App.XAML中,则整个应用程序的默认样式,那么您将省略x:Key属性
<Style x:Key="ButtonStyle" TargetType="Button">
要使用ButtonStyle,您必须编写:
<Button Content="A button" Style="{StaticResource ButtonStyle}" />
省略x:键将允许您使用ButtonStyle作为默认设置
<Style TargetType="Button">
<Button Content="A button with style that has no x:Key value" />
现在,如果需要创建没有此默认样式的按钮,可以将该按钮的样式属性设置为x:Null,或者通过将命名样式设置为该按钮来覆盖
<Button Content="Default Silverlight button" Style="{x:Null}"/>
Silverlight 4中样式的另一个新功能是,您可以基于现有样式创建新样式。虽然这不是你的问题,但我会举个例子:
<Style TargetType="Button" BasedOn="{StaticResource BasedStyle}">
关于文档中的隐式样式:
隐式风格
在Silverlight 4中,可以设置样式
含蓄地也就是说,您可以申请
某个样式适用于某个文档的所有元素
某种类型。当一个资源
声明时没有x:Key值,
x:Key值假定的值为
TargetType属性。如果你设定
样式隐式地,样式是
仅应用于匹配的类型
TargetType完全正确,不允许
从TargetType派生的元素
价值例如,如果创建
隐式地为所有
在您的应用程序中切换按钮控件
应用程序,并且您的应用程序
切换按钮和复选框控件
(复选框源于ToggleButton),
该样式仅应用于
切换按钮控件
基于样式
从Silverlight 3开始,它是
可以基于
现有的风格。你可以这样做
使用BasedOn属性。这
减少代码和数据的重复
使管理资源更容易。
每个样式仅支持一个BasedOn
风格有关更多信息,请参阅
BasedOn财产
是的,我可以通过以下操作设置样式:radioBtn.Style=(Style)(Application.Current.Resources[“rdbFolder”);但是我必须在所有页面中重复这个过程来设置样式。相反,我想当我在第一页上说设置radioBtn的样式时,它应该应用到应用程序中所有页面中的所有RadioButton。