2016-03-21 1 views
1

J'ai un Viewbox et un TextBlock à l'intérieur. Mais TextBlock n'occupe pas entière Viewbox. Puis-je gérer un événement lorsque l'utilisateur clique sur le Viewbox, et non sur TextBlock?Gestion de l'événement de clic de la boîte de vue dans WPF

La définition de l'événement MouseDown ne fonctionne pas.

+0

Avez-vous essayé PreviewMouseDown? – sexta13

+0

Oui. Ne fonctionne pas non plus. – AndrewR

+0

Pourquoi avez-vous besoin d'une vue? – sexta13

Répondre

1

essayez ceci:

<Viewbox Width="100"> 
      <StackPanel Background="Transparent" Width="100" PreviewMouseLeftButtonDown="StackPanel_PreviewMouseLeftButtonDown"> 
       <TextBox Width="20">sdgdf</TextBox> 
      </StackPanel> 
</Viewbox> 

ajouter l'événement PreviewMouseLeftButtonDown-StackPanel, réglez Background="Transparent". Et le code derrière:

private void StackPanel_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    MessageBox.Show("FIRE!"); 
} 
+0

Toujours rien. Il se déclenche uniquement lorsque je clique directement sur TextBlock. – AndrewR

+0

as-tu essayé cela? J'ai mis à jour la réponse. – SeM

+0

J'ai testé, ça marche très bien pour moi. – SeM