2017-12-15 1 views
-1

Ich habe eine Schaltfläche in WPF, und ich erstelle einen Ereignishandler dafür. Mein Ziel ist es, einen versenkten Effekt zu erzeugen, wenn auf die Schaltfläche geklickt wird. Das Problem ist, ich habe versucht, verschiedene Event-Handler und es scheint nicht zu funktionieren. Ich sehe überhaupt keinen Effekt. Irgendeine Idee, wie man es repariert?Mausereignisschaltfläche funktioniert nicht

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# -Code:

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

Probieren Sie das mit dem Preview-Präfix ('PreviewMouseDown' oder smthing wie folgt) – Alex

+0

Ich versuchte PreviewMouseDown-Ereignis, funktioniert nicht so gut. –

+0

gibt es die Event-Handler-Methode ein? – Alex

Antwort

2

Ich denke, mit etwas in den <Button></Button> Tags bedeutet, dass Sie jetzt ein eigenes Template für Ihre Schaltfläche haben. Sie sollten das Gitter mit einem <Border x:Name="yourBorder"></Border> umgeben und erhöhen dann die Grenze thinknes

Sie müssen Sie Schaltfläche Vorlage ändern wie folgt aussehen:

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

Dann in Ihrem Event-Handler Sie die yourBorder Dicke ändern würde:

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

Wie würde das es beheben? –

+0

Es hat nicht funktioniert, das einzige, was Sie hinzufügen, ist eine zusätzliche schwarze Umrandungslinie auf dem Layout meiner Schaltfläche. Der Effekt tritt immer noch nicht in –

+0

tatsächlich hat es funktioniert –