2017-02-23 6 views
0

Arbeits Ich schreibe eine benutzerdefinierte Schaltfläche:Vorlage Bindung an Content nicht

<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> 

und ich versuche, ‚HorizontalAlignement‘ und ‚Vertical‘ des Content an der Vorlage zu binden. Was ich tun möchte, dann ist die Taste wie folgt zu verwenden:

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

Und den Text in der Schaltfläche, die in beiden Achsen zentriert ist. Das funktioniert nicht und ich kann den Grund nicht herausfinden. Was vermisse ich in meinem Code? Vielen Dank!

Antwort

0

Ich fand, was das Problem war.

In dem Tag ‚Button‘ hatte ich hinzufügen:

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

Ansonsten scheint es, dass nicht „propagiert“, um die inneren Elemente ist die Bindung.

Das war das Problem!

+0

Warum haben Sie alle verschachtelten Vorlagen? –