Silverlight棱镜和';松动';样式文件
我们正在考虑使用PRISM框架启动一个新的Silverlight项目(从模块等中获益),但我仍然不太清楚最佳的样式设计方法。理想情况下,我希望有一个可编辑的XAML文件(整个项目可能只有一个),其中包含应用程序的样式,这样就可以编辑它们来更改应用程序的外观,而无需重新编译所有内容。 这是人们使用的方法吗?我想它需要在启动时加载文件,并应用我认为不会带来巨大开销的样式 只是想知道人们用什么方法 感谢您花时间在Silverlight(和WPF)中,典型的/正常的方法是将您的样式和画笔保存在资源字典中。然后可以随时交换这些模板以更改布局、颜色和控件模板。您可以将它们包含在生成应用程序时生成的XAP或独立程序集中 要记住的是,资源文件可以在不同的级别加载。将应用程序级别降低到单个控件的级别。在较低级别加载的词典将优先于较高级别的词典。对我来说,把它看作是一个层次是很有帮助的。以下是我的方法- 在App.xaml中,您需要像这样声明一个Silverlight棱镜和';松动';样式文件,silverlight,coding-style,prism,Silverlight,Coding Style,Prism,我们正在考虑使用PRISM框架启动一个新的Silverlight项目(从模块等中获益),但我仍然不太清楚最佳的样式设计方法。理想情况下,我希望有一个可编辑的XAML文件(整个项目可能只有一个),其中包含应用程序的样式,这样就可以编辑它们来更改应用程序的外观,而无需重新编译所有内容。 这是人们使用的方法吗?我想它需要在启动时加载文件,并应用我认为不会带来巨大开销的样式 只是想知道人们用什么方法 感谢您花时间在Silverlight(和WPF)中,典型的/正常的方法是将您的样式和画笔保存在资源字典中
MergedDictionaries
元素
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles\Colors.xaml" />
<ResourceDictionary Source="Styles\Brushes.xaml" />
<ResourceDictionary Source="Styles\Typeography.xaml" />
<ResourceDictionary Source="Styles\ModuleAStyles.xaml />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
这再次提到了颜色“轻”和“最轻”。这些存在于Colors.xaml文件中
<!--Flat Diagonal Gradient Lightest-->
<LinearGradientBrush x:Key="FlatDiagonalGradientLightest"
StartPoint="0,0"
EndPoint="1,1">
<GradientStop Color="{StaticResource ResourceKey=Light}"
Offset="0" />
<GradientStop Color="{StaticResource ResourceKey=Lightest}"
Offset="1" />
</LinearGradientBrush>
<Color x:Key="Light"
A="255"
R="190"
G="190"
B="190" />
<Color x:Key="Lightest"
A="255"
R="250"
G="250"
B="250" />
该TextBlock
现在在Typeography.xaml中使用了“ApplicationTitle”样式,它从brush.xaml中的“FlatGradientLightest”LinearGradientBrush
加载它的前景笔刷,然后从colors.xaml文件中的Color
资源加载两种颜色
有点酷吧
希望有帮助。Silverlight 3直接支持浏览器外应用程序
<Color x:Key="Light"
A="255"
R="190"
G="190"
B="190" />
<Color x:Key="Lightest"
A="255"
R="250"
G="250"
B="250" />
<TextBlock Text="Menu Module Loaded" Style="{StaticResource ResourceKey=ApplicationTitle}" />