2016-03-22 14 views
0

私はXAMLで新しく、簡単なゲームでボタンに問題があります。 私は円のボタンを作って色を変える必要がありますが、私のボタンはアニメートのようなボタンのデフォルトのスタイル、ホバーのポインタの変化、アニメーションのクリックなどを与えず、色も変わりません。スタイルをカスタマイズしてXAMLとC#の円ボタンを作成する方法は?

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

と仕事をdosen't色の変化コード:

は、ここに私のXAMLです!例えば

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

あなたのクリックがあなたの楕円の色を変更する必要があります。これを楕円の内側で試してください。Fill = "{バインディングElementName = btnRed、Path =背景}" – adminSoftDK

+2

[MSDNからの[default Buttonテンプレート]のバージョンをコピーできます(https://msdn.microsoft.com/en-us/library) /ms753328(v=vs.100).aspx)、ControlTemplateをここにあるものに変更してください。それはあなたのための独自のカスタムシェイプで、すべてのデフォルトの動作を与える必要があります。 – Rachel

+1

彼は 'Fill'を' {TemplateBinding Background} 'に変更する必要がありますが、それは間違いなく最適なルートです。 –

答えて

0

私はあなたの塗りつぶし=「#1 FFCA6969は」黄色に変わる:

<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> 
関連する問題