2017-02-23 42 views
0

我正在寫一個自定義按鈕:範本ContentPresenter約束力不工作

<UserControl x:Class="WpfSinergoHMIControls.RoundedButton" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:local="clr-namespace:WpfSinergoHMIControls" 
     mc:Ignorable="d"> 

<UserControl.Template> 
    <ControlTemplate TargetType="UserControl"> 
     <Button Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" Click="button_Click" PreviewMouseDown="Button_MouseDown" PreviewMouseUp="Button_MouseUp"> 
      <Button.Resources> 

      </Button.Resources> 
      <Button.Template> 
       <ControlTemplate TargetType="Button"> 
        <Border Width="{Binding Size}" 
          Height="{Binding Size}" 
          BorderBrush="#FF3C7FB1" 
          BorderThickness="1" 
          CornerRadius="5" 
          Name="RoundedButtonBorder"> 
         <Border.Background> 
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
           <GradientStop Color="#3a4451" Offset="0"/> 
           <GradientStop Color="#0b2039" Offset="1"/> 
          </LinearGradientBrush> 
         </Border.Background> 
         <ContentPresenter VerticalAlignment="{TemplateBinding VerticalAlignment}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}"/> 
        </Border> 
       </ControlTemplate> 
      </Button.Template> 
     </Button> 
    </ControlTemplate> 
</UserControl.Template> 

,我想要綁定「Horizo​​ntalAlignement」和ContentPresenter到模板的「VerticalAlignment」。然後,我想要做的是使用這樣的按鈕:

<local:RoundedButton HorizontalAlignment="Center" VerticalAlignment="Center" Height="73" Margin="35,10,282,236" FontSize="30" Width="200" Content="Hello" Foreground="Red"/> 

並讓按鈕中的文本在兩個軸的中心位置。這不起作用,我找不出原因。我在代碼中錯過了什麼?謝謝!

回答

0

我發現問題所在。

在標籤「按鈕」我不得不添加:

VerticalAlignment="{TemplateBinding VerticalAlignment}" 
HorizontalAlignment="{TemplateBinding HorizontalAlignment}" 

否則似乎不是「傳播」的內部元素的結合。

這是問題!

+0

爲什麼你有所有的嵌套模板? –