我想为wpf编写样式,其中StatusBar中的所有按钮(具有已定义的样式)具有相同的样式(例如宽度)。
以下是我的风格:
<Style TargetType="{x:Type StatusBar}"
x:Key="DialogBoxStatusBarStyle">
<Setter Property="Background"
Value="LightGray" />
<Setter Property="Padding"
Value="5" />
...?
</Style>
元素的xaml:
<StatusBar Style="{StaticResource ResourceKey=DialogBoxStatusBarStyle}" Grid.Row="3"
FlowDirection="RightToLeft">
<Button Content="Übernehmen"
Width="100"
HorizontalAlignment="Right" />
<Button Content="Abbrechen"
Width="100"
HorizontalAlignment="Right" />
<Button Content="OK"
Width="100"
HorizontalAlignment="Right" />
</StatusBar>
在最终版本中,我不想为所有按钮将宽度设置为100。这应该以{{1}}的样式定义,或者更好地说明StatusBar
的按钮子样式。
答案 0 :(得分:6)
您可以为Resources
的{{1}}添加默认的按钮样式:
DialogBoxStatusBarStyle
答案 1 :(得分:1)
为了扩展上面的答案(@Clemens),您甚至可以做这样的事情,独立重用按钮样式,并将其应用于特定容器的子项。
样式:
<Style TargetType="{x:Type Button}" x:Key="MyButtonStyle">
<Setter Property="Width" Value="100" />
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
<Style TargetType="{x:Type StatusBar}" x:Key="DialogBoxStatusBarStyle">
<Setter Property="Background" Value="LightGray" />
<Setter Property="Padding" Value="5" />
<Style.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MyButtonStyle}" />
</Style.Resources>
...
</Style>