2013-01-14 98 views
0

我想爲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的所有按鈕。這應該以StatusBar的風格來定義,或者更好地按照StatusBar的按鈕子的樣式進行說明。

回答

5

你可以爲按鈕添加一個默認樣式您DialogBoxStatusBarStyleResources

<Style TargetType="StatusBar" x:Key="DialogBoxStatusBarStyle"> 
    <Style.Resources> 
     <Style TargetType="Button"> 
      <Setter Property="Width" Value="100"/> 
     </Style> 
    </Style.Resources> 
    ... 
</Style> 
+0

+1,打我給它。 – Mir

0

爲了延長上述(@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> 
相關問題