2010-03-09 76 views
6

我在WPF工具欄上有按鈕。使用樣式設置工具欄按鈕尺寸

當我做了XAML:按鈕的工具欄上

<ToolBar.Resources> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="Width" Value="21"></Setter> 
     <Setter Property="Height" Value="21"></Setter> 
    </Style> 
</ToolBar.Resources> 

沒有相應地設置其大小。

我必須去每個按鈕,並手動將它們的寬度和高度設置爲所需的值。

任何想法爲什麼工具欄上的樣式不起作用?

回答

8

發生這種情況是因爲ToolBar將ToolBar.ButtonStyleKey標識的樣式應用於按鈕,而不是將它們留在默認樣式中。 (這就是爲什麼在工具欄按鈕,即使默認風格是凸出平面)。你需要「劫持」這種風格,而不是默認的樣式:

<ToolBar.Resources> 
    <Style x:Key="{x:Static ToolBar.ButtonStyleKey}" TargetType="Button"> 
    <Setter Property="Width" Value="100" /> 
    </Style> 
</ToolBar.Resources> 

注意X:在樣式聲明的關鍵。

2

如果要將硬編碼按鈕添加到工具欄,可以將ToolBar.ItemContainerStyle設置爲自定義樣式以獲得所需的效果。

<ToolBar.ItemContainerStyle> 
    <Style 
     TargetType="Button"> 
     <Setter 
      Property="Width" 
      Value="21" /> 
     <Setter 
      Property="Height" 
      Value="21" /> 
    </Style> 
</ToolBar.ItemContainerStyle> 

如果您正在使用ToolBar.ItemsSource您可以改用ToolBar.ItemTemplate定義模板工具欄的數據。

<ToolBar.ItemTemplate> 
    <DataTemplate> 
     <Button 
      Width="21" 
      Height="21" 
      Content="{Binding}" /> 
    </DataTemplate> 
</ToolBar.ItemTemplate> 

請注意,在某些情況下,它們都可以同時使用以獲得更大的靈活性。

這不僅適用於工具欄,而且適用於ItemsControl的所有衍生產品。

祝你好運,