Laden...

Ein Eventhandler für alle Events eines Fensters

Erstellt von bra10 vor 9 Jahren Letzter Beitrag vor 9 Jahren 983 Views
B
bra10 Themenstarter:in
27 Beiträge seit 2007
vor 9 Jahren
Ein Eventhandler für alle Events eines Fensters

Ich habe bislang vorwiegend kleine Spielereien in C# mit XNA programmiert. Da muss man sich mit Events nicht groß auskennen. Nun arbeite ich mich gerade in WPF ein um ein kleines Spieleprojekt zu realisieren. Hierfür möchte ich, dass jedes Mal, wenn die linke Maustaste gedrückt wird, eine kleine Aktion ausführen wie z.B. einen Sound abspielen. Ich möchte hierfür dieses Event nicht an jedes anklickbare Element ranhängen, sondern möglichst nur ein einziges Mal.

Wie gehe ich vor?

2.223 Beiträge seit 2005
vor 9 Jahren

Halllo bra10,

Du könntest das ganze einfach an das Window hängen, die Frage wäre dann nur welche anklickbaren Elemente Du verwenden möchtest.

Denn wenn Du zb einen Button oder eine Textbox hast, würde dieses Event von dem jeweiligen Element selber behandelt werden und nicht von deinem Fenster.

Viele Grüße
Lars

5.299 Beiträge seit 2008
vor 9 Jahren

weiß ich nicht genau.
Aber ich fand diese Klasse im ObjectBrowser:
System.Windows.Input.Mouse
Und die verfügt auch über geeignete RoutedEvent-DependancyProperties, etwa
System.Windows.Input.Mouse.MouseDownEvent

So DepProps kann man iwie abonnieren mit glaub was "AddEvent" heißt, aber vlt. bringe ich auch was durcheinander.

Jdfs. in diese Richtung würde ich mal forschen.

Der frühe Apfel fängt den Wurm.

B
bra10 Themenstarter:in
27 Beiträge seit 2007
vor 9 Jahren
dann werde ich mich mal auf die Suche machen...

...für weitere Tipps bin ich weiterhin dankbar 😉

P
1.090 Beiträge seit 2011
vor 9 Jahren

Schau dir mal den Artikel an. MSDN:Routingereignisse und -befehle in WPF

Bin jetzt nur drüber geflogen, OnChildeElementMousDown, das sieht so aus als ob du das Suchst.
Sender so dann das eigendlich geclickte Element sein.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern