2015-06-28 223 views
1

我嘗試修改按鈕樣式以刪除Chrome系統按鈕。一切正常,但按鈕的內容不會在按鈕的中心正確對齊。自定義按鈕樣式對齊wpf

按鈕樣式:

<Style x:Key="NoChrome" TargetType="{x:Type Button}"> 
     <Setter Property="Background" Value="Transparent"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <ContentPresenter/> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

按鈕聲明:

<Button Content="Button" Canvas.Left="141" Canvas.Top="324" Width="75" Style="{DynamicResource NoChrome}"/> 
+0

的Horizo​​ntalAlignment = 「中心」? – Maximus

+0

這將是horizo​​ntalContentAlignment,但我已經設置爲中心 – Propolys

+0

在ContentPresenter上設置? – Maximus

回答

0

ContentPresenter的Horizo​​ntalAlignment = 「中心」

您通常使用ContentPresenter在控件模板一個ContentControl中來指定內容的添加位置。每個ContentControl類型在默認的ControlTemplate中都有一個ContentPresenter。

當ContentPresenter對象位於ContentControl的ControlTemplate中時,Content,ContentTemplate和ContentTemplateSelector屬性將從ContentControl的相同名稱的屬性中獲取它們的值。您可以讓ContentPresenter屬性通過設置ContentSource屬性或綁定它們來從模板父級的其他屬性中獲取這些屬性的值。

<Style x:Key="NoChrome" TargetType="{x:Type Button}"> 
     <Setter Property="Background" Value="Transparent"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <ContentPresenter HorizontalAlignment="Center"/> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

Reference