164 votes

Comment par programme, cliquez sur un bouton dans WPF ?

Puisqu’il n’y a aucun `` méthode dans WPF, est-il possible de cliquer sur un bouton WPF par programmation ?

217voto

Denis Vuyka Points 1137

Comme dit JaredPar vous pouvez consulter l’article de Josh Smith vers l’automatisation. Toutefois si vous regardez à travers les commentaires de son article, vous y trouverez la plus élégante façon de déclencher des événements contre les contrôles WPF

Personnellement, je préfère celle ci-dessus au lieu d’homologues automation.

148voto

JaredPar Points 333733

WPF prend un peu approche différente de celle des WinForms ici. Au lieu d'avoir l'automatisation d'un objet construit dans l'API, ils ont une catégorie distincte pour chaque objet qui est responsable de l'automatisation. Dans ce cas, vous avez besoin de la ButtonAutomationPeer pour accomplir cette tâche.

ButtonAutomationPeer peer =
  new ButtonAutomationPeer( someButton );
IInvokeProvider invokeProv =
  peer.GetPattern( PatternInterface.Invoke )
  as IInvokeProvider;
invokeProv.Invoke();

Voici un blog sur le sujet: http://joshsmithonwpf.wordpress.com/2007/03/09/how-to-programmatically-click-a-button/

42voto

Sonorx Points 717

Si vous voulez appeler, cliquez sur événement :

Et si vous voulez que le bouton ressemble à elle sont pressée :

et non enfoncé après cela :

ou utilisez le contrôle ToggleButton

26voto

Mahdi Points 21
this.PowerButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));

6voto

Greg D Points 24218

Par programme « clic » du bouton, si vous avez accès à la source, consiste à simplement appeler le gestionnaire d’événements de OnClick du bouton (ou exécuter le ICommand associé au bouton, si vous faites des choses de la manière plus de WPF-y).

Pourquoi tu fais ça ? Tu fais une sorte d’automatisés tests, par exemple, ou en train d’effectuer la même action que le bouton effectue depuis une section différente du code ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X