2017-12-15 9 views
-1

私はWPFでボタンを持っており、そのためのイベントハンドラを作成しています。 私の目標は、ボタンをクリックしたときに沈んだ効果を生成することです。 問題は、私は別のイベントハンドラを試して、それは動作していないようです。 私は全く何の効果も見ません。どのようにそれを修正するための任意のアイデア?マウスイベントボタンが機能しない

XAML:

<Button x:Name="btnMyAccount"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="165"/> 
      <RowDefinition Height="70"/> 
     </Grid.RowDefinitions> 
     <Image Grid.Row="0" Source="{StaticResource Home-MyProfile}" /> 
     <TextBlock x:Name="txtMyAccount" Grid.Row="1" FontWeight="Bold"> 
      MY ACCOUNT 
     </TextBlock> 
    </Grid> 
</Button> 

C#コード:

private void btnMyAccount_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    btnMyAccount.BorderThickness = new Thickness(5, 5, 0, 0); 
} 
+0

プレビュープレフィックス( 'PreviewMouseDown'またはこのようなsmthing)で試してください – Alex

+0

私はPreviewMouseDownイベントを使ってみましたが、うまくいきませんでした。 –

+0

イベントハンドラメソッドに入りますか? – Alex

答えて

2

私は<Button></Button>タグで何かを持つことは、あなたが今、あなたのボタンのカスタムテンプレートを持っていることを意味だと思います。

<Button x:Name="btnMyAccount"> 
    <Border x:Name="yourBorder" BorderBrush="Black" BorderThickness="1"> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="165"/> 
       <RowDefinition Height="70"/> 
      </Grid.RowDefinitions> 
      <Image Grid.Row="0" Source="{StaticResource Home-MyProfile}" /> 
      <TextBlock x:Name="txtMyAccount" Grid.Row="1" FontWeight="Bold"> 
       MY ACCOUNT 
      </TextBlock> 
     </Grid> 
    </Border> 
</Button> 

その後、あなたのイベントハンドラで、あなたがyourBorder厚さを変更します:あなたはこのように見えるようにあなたのボタンテンプレートを変更する必要があります<Border x:Name="yourBorder"></Border>でグリッドを囲むと、その境界thinknesに

を増やす必要があります

private void btnMyAccount_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    yourBorder.BorderThickness = new Thickness(5, 5, 0, 0); 
} 
+0

これはどのようにそれを修正するだろうか? –

+0

これは機能しませんでした。追加する唯一のものは、ボタンのレイアウト上に余分な黒い境界線です。効果はまだ –

+0

で蹴られません –

関連する問題