2017-07-06 9 views
0

私は矢の形のボタンのためにインターネットを見ていました。私はこの解決策を見つけた:カスタマイズされたボタンの "クリック"エフェクト

<Button HorizontalAlignment="Center" Click="Button_Click"> 
     <Button.Template> 
      <ControlTemplate TargetType="Button"> 
       <Grid> 
        <StackPanel Orientation="Horizontal"> 
         <Rectangle Width="100" Height="25" Stroke="Orange" Fill="Orange" VerticalAlignment="Center"/> 
         <Polygon Points= "0,0 30,25, 0,50" Stroke="Orange" Fill="Orange" VerticalAlignment="Center"/> 
        </StackPanel> 
        <ContentPresenter HorizontalAlignment="Left" Margin="45,0,0,0" VerticalAlignment="Center" Content="Login"/> 
       </Grid> 
      </ControlTemplate> 
     </Button.Template> 
</Button> 

これに伴う問題は、これをクリックすることができるボタンがある一方で、私はボタンのクリック効果を「失われた」、ということである(つまり、あなたがボタンを押したときに、あなたが持っている効果) 。私の問題を解決する方法があるかどうか知っていますか?

答えて

1

カスタムテンプレートでこの効果を自分で定義する必要があります。

<Button.Template> 
    <ControlTemplate TargetType="Button"> 
     <Grid> 
      <StackPanel Orientation="Horizontal"> 
       <Rectangle x:Name="rect" Width="100" Height="25" Stroke="Orange" Fill="Orange" VerticalAlignment="Center"/> 
       <Polygon x:Name="pol" Points= "0,0 30,25, 0,50" Stroke="Orange" Fill="Orange" VerticalAlignment="Center"/> 
      </StackPanel> 
      <ContentPresenter HorizontalAlignment="Left" Margin="45,0,0,0" VerticalAlignment="Center" Content="Login"/> 
     </Grid> 
     <ControlTemplate.Triggers> 
      <Trigger Property="IsPressed" Value="true"> 
       <Setter Property="Fill" TargetName="rect" Value="Red"/> 
       <Setter Property="Fill" TargetName="pol" Value="Blue"/> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
</Button.Template> 

は、テンプレート内の要素のいくつかのプロパティを変更するIsPressedトリガーを追加します。

関連する問題