2016-03-22 11 views
0

Ich bin neu in XAML und ich habe ein Problem mit meinem Knopf in meinem einfachen Spiel. Ich mache einen Kreis-Button und ich muss seine Farbe ändern, aber meine Schaltfläche gibt nicht den Standard-Stil einer Schaltfläche wie animieren, Zeiger ändern bei Hover es, klicken Sie auf animieren und etc, auch seine Farbe ändert sich nicht.Wie man Kreisknopf in XAML und C# mit anpassen Stil?

Hier ist meine XAML:

<Page.Resources> 
    <SolidColorBrush x:Key="RedColorXX" Color="Red" /> 
</Page.Resources> 

<Button x:Name="btnRed" Style="{StaticResource btnColor}" Content="Red" HorizontalAlignment="Left" Height="228" Margin="62,261,0,0" VerticalAlignment="Top" Width="228" Background="#FFCA6969" Click="colors_Click" FontSize="0.01" BorderBrush="Azure" Grid.Column="1" > 
    <Button.Template > 
     <ControlTemplate TargetType="Button" > 
      <Grid > 
       <Path Stretch="Uniform" UseLayoutRounding="False" Fill="#FFCA6969"> 
        <Path.Data> 
         <EllipseGeometry RadiusX="1" RadiusY="1"/> 
        </Path.Data> 
       </Path> 
       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
      </Grid> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

und der Farbwechsel-Code, der Arbeit dosen't!

btnRed.Background = (SolidColorBrush)Resources["RedColorXX"]; 
+0

Ihr Klick muss die Farbe Ihrer Ellipse ändern. Versuchen Sie dies innerhalb der Ellipse Fill = "{Binding ElementName = btnRed, Pfad = Hintergrund}" – adminSoftDK

+2

Sie können eine Version der [Standardschaltfläche Vorlage von MSDN] kopieren (https://msdn.microsoft.com/en-us/library /ms753328(v=vs.100).aspx), modifiziere dann einfach das ControlTemplate auf das, was du hier hast. Das sollte Ihnen alle Standardverhaltensweisen mit Ihrer eigenen benutzerdefinierten Form geben. – Rachel

+1

Er muss seine 'Fill' in' {TemplateBinding Background} 'ändern, aber das ist definitiv die beste Route. –

Antwort

0

Zum Beispiel drehe ich satt = "# FFCA6969" in gelb:

<Button x:Name="btnRed" Content="Red" HorizontalAlignment="Left" Height="228" Margin="100,35,0,0" VerticalAlignment="Top" Width="228" Background="#FFCA6969" Click="colors_Click" FontSize="0.01" BorderBrush="Azure" > 
     <Button.Template > 
      <ControlTemplate TargetType="Button" > 
       <Grid > 
        <Path Stretch="Uniform" UseLayoutRounding="False" Fill="Yellow"> 
         <Path.Data> 
          <EllipseGeometry RadiusX="1" RadiusY="1"/> 
         </Path.Data> 
        </Path> 
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       </Grid> 
      </ControlTemplate> 
     </Button.Template> 
    </Button>