我可以在Silverlight中使用generic.xaml来设置应用程序中所有TextBlock的样式吗?
<ResourceDictionary xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="TextBlock">
<Setter Property="Foreground"
Value="White" />
<Setter Property="FontSize"
Value="24" />
</Style>
</ResourceDictionary>
我希望这可行,但不会: - (
在整个应用程序中应用样式的最简单方法是什么?
谢谢, 标记
修改
感谢您的回复。我没有收到错误,样式没有被应用。我在互联网上找到的所有例子(包括你列出的例子)都是为自定义控件设计的。我可以这样做,但我想设置默认控件的样式:
<TextBlock Text="Style me!!" Grid.Row="2" />
我是否需要从page.xaml添加对generic.xaml的引用? 我是否需要将generic.xaml样式命名并引用为资源??
再次感谢,马克
答案 0 :(得分:9)
在Silverlight 4中,您可以使用implicit styling!
答案 1 :(得分:5)
通过设置TargetType并省略ResourceKey一般/自动设置样式仅适用于WPF,而不适用于Silverlight。
如果您想在整个应用程序中使用Style,可以将它添加到App.xaml中的Resources集合中,但要使用它,它将需要ax:Key,您必须单独应用它作为StaticResource绑定对于要使用它的目标类型的每个实例。
答案 2 :(得分:1)
我相信这是在Silverlight 3中。但是其他人都是对的,你需要在Silverlight 2中手动设置每一个。
答案 3 :(得分:1)
请注意,您还可以使用Silverlight Toolkit中的ImplicitStyleManager执行此操作:
将样式应用于层次结构中的顶级控件,它将向下传播到所有子控件。
答案 4 :(得分:0)
究竟什么不起作用?你得到一个错误,或者你的文本框没有得到主题吗?
您的方法是主题控件的正确方法,因此只需解决您遇到的问题。
This是一个很好的教程,this也是如此,但请注意,在Silverlight 2中,您需要将通用文件放在
中themes\generic.xaml
与您可能找到的许多教程(包括上面给出的教程)不同
修改:另一个教程here
答案 5 :(得分:0)
尝试一下。
<UserControl.Resources>
<Style TargetType="TextBlock" x:Name="tbStyle">
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="24" />
</Style>
</UserControl.Resources>
然后使用TextBlock。
<TextBlock Style="{StaticResource tbStyle}" />