2016-03-22 20 views
0

XAML'de yeniyim ve basit oyunda düğmemde bir sorun var. Bir daire düğmesi yapıyorum ve onun rengini değiştirmem gerekiyor, ancak düğmem, animasyonlu bir düğmenin varsayılan stilini vermiyor, üzerine gelindiğinde işaretçi değişikliği, hareketlendirmeyi tıklayın vb. Ayrıca renk değişmiyor.XAML ve C# içinde stil özelleştirmek için daire düğmesi nasıl yapılır?

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

ve iş kaplamaz renk değişimi kodu:

İşte benim XAML olduğunu! Örneğin

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

Tıklama sizin elips rengini değiştirmek gerekiyor. Bunu elipsin içinde dene Dolgu = "{Binding ElementName = btnRed, Yol = Arkaplan}" – adminSoftDK

+2

[MSDN'den varsayılan Button şablonunun bir sürümünü kopyalayabilirsiniz] (https://msdn.microsoft.com/en-us/library /ms753328(v=vs.100).aspx), daha sonra burada bulunanlara ControlTemplate'i değiştirin. Bu, sizin için kendi özel şekle sahip tüm varsayılan davranışları vermelidir. – Rachel

+1

Bunu yaparken 'Fill'ini' {TemplateBinding Background} 'olarak değiştirmesi gerekecek ama bu kesinlikle en iyi yol. –

cevap

0

Sarı içine dolgu = "# FFCA6969" çevirmek:

<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> 
İlgili konular