我正在使用Silverlight 5,在我的一个页面中,我有一个StackPanel,我的孩子们按照以下方式设计:
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="FontSize" Value="12"></Setter>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="DarkRed"></Setter>
</Style>
</StackPanel.Resources>
<TextBlock Text="TextBlockText:"></TextBlock>
<Button Content="FirstButton" Command="{Binding SetLayout}" CommandParameter="FirstOnly"/>
<Button Content="FirstSecondButton" Command="{Binding SetLayout}" CommandParameter="FirstSecond"/>
</StackPanel>
我在同一页面中有另一个StackPanel,如何重复使用此样式而不再复制并重新粘贴?
答案 0 :(得分:0)
你有几个选择。把它放在他们父母的Object.Resources
中,例如Window.Resources
或UserControl.Resources
或任何情况。除此之外,它将影响该父级中所有相同类型的对象。
另一种方法是做同样的事情,如果你不想这样做,给每个样式模板一个x:Key
名称,并明确地将它调用到每个实例,如<Buttton Style="{StaticResource YourExplicitStyleKeyName}"/>
或者您可以将样式放在ResourceDictionary
中,并以与上述相同的方式显式调用它们。希望这可以帮助。