Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将样式应用于整个silverlight应用程序?_Silverlight_Silverlight 3.0 - Fatal编程技术网

如何将样式应用于整个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。