2010-05-11 50 views
0

我創建了一個由邊框和內容展示器組成的按鈕模板。樣式然後纏繞在此模板上並應用於按鈕。但是,使用此按鈕時,它不具有水平和垂直對齊的值。在設計器中,對齊顯示和按鈕位於正確的位置,但是當我運行該程序時,該按鈕似乎具有水平對齊=左對齊和垂直對齊=右對齊。有任何想法嗎?
下面是模板的代碼:WPF按鈕模板對齊方式設置不正確

<ControlTemplate TargetType="Button" x:Key="DefaultButtonTemplate"> 

    <Border CornerRadius="4" 
      Background="{TemplateBinding Background}" 
      BorderThickness="{TemplateBinding BorderThickness}" 
      BorderBrush="{TemplateBinding BorderBrush}"> 
     <Grid> 
      <ContentPresenter ContentSource="{TemplateBinding Content}" 
        ContentTemplate="{TemplateBinding ContentTemplate}" 
        VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
        HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/> 
     </Grid> 
    </Border> 
</ControlTemplate> 

下面是樣式代碼:

<Style TargetType="Button"> 
    <Setter Property="Background" Value="{DynamicResource WindowHeaderBrush}" /> 
    <Setter Property="BorderBrush" Value="{DynamicResource WindowBorderBrush}" /> 
    <Setter Property="Template" Value="{DynamicResource DefaultButtonTemplate}" /> 
    <Setter Property="BorderThickness" Value="1" /> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background" Value="{DynamicResource ButtonHoverBrush}" /> 
      <Setter Property="BitmapEffect" Value="{DynamicResource ButtonHoverGlow}" /> 
     </Trigger> 
     <Trigger Property="IsPressed" Value="True"> 
      <Setter Property="Background" Value="{DynamicResource ButtonPressedBrush}" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

這裏是按鈕的代碼:

<Button Name="button1" Height="31" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,0,10,10">Button</Button> 

有文件後面沒有代碼

此代碼的結果是一個按鈕出現在父母的左上角平靠着邊緣

+1

我認爲看到代碼隱藏和標記在這裏會有所幫助。 – Charlie 2010-05-11 23:33:16

+0

我會發布它,但沒有代碼背後 – TerrorAustralis 2010-05-11 23:35:54

回答

2

我認爲該行

<Button Name="button1" Height="31" VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,0,10,10">Button</Button> 

應該

<Button Name="button1" Height="31" VerticalContentAlignment="Bottom" HorizontalContentAlignment="Right" Margin="0,0,10,10">Button</Button> 

,否則你只是設置的對齊按鈕不是內容。

+0

你知道嗎...我印象深刻。你談到了這個問題(我把它整理出來)。在持有按鈕的窗口模板中,我使用verticalContentAlignment和Horizo​​ntalContentAlignment來設置內容的對齊方式,我把它關閉了,現在它工作正常:)我會用答案來聲明你,因爲你的方法可以工作,但由於錯誤的原因 – TerrorAustralis 2010-05-12 06:40:20

+0

嗯,那是正確的,我誤解了這個問題,很高興它爲你工作:) – Oggy 2010-05-12 06:56:17