Note:
Forums will be making significant UX changes to address key usability improvements surrounding search, discoverability and navigation.
To learn more about these changes please visit the announcement which can be found
HERE.
ich spiele derzeit ein wenig mit den Möglichkeiten herum, die WPF zur Erstellung eigener Controls erlaubt. Dazu habe ich mir eine Klasse auf Basis von ButtonBase erstellt. In der Klasse (und im zug. Style) tue ich nichts anderes, als das Erscheinungsbild des Buttons zu verändern. Dabei werden keinerlei Events angefasst - die lasse ich schön in Ruhe.
In meiner Test-Anwendung wird der neu designte Button auch schön angezeigt und er verhält sich auch so, wie ich mir das wünsche (dank ControlTemplate.Triggers und ein paar farbverändernder Setter dazu). Nur eines klappt nicht: Das Click-Event schafft es nicht bis in den EventHandler der Test-Anwendung.
Ich habe mich durch die Online-Hilfe gelesen, zahlreiche Artikel im Internet durchforstet, allerdings gab es nirgends einen helfenden Hinweis zu meinem Problem. So bleibt die Frage: wo ist der Haken?
Hallo Günter, Hallo "M" Alias LawBot (oder umgekehrt),
es ist vertrackt... ich habe ein kleines CustomControl als Beispiel erstellt um es hier zu posten... und siehe da: das Click-Event kam sauber durch! Und noch "schlimmer": Mit einem etwas älteren Entwicklungsstand meines eigentlichen Controls klappts auch. Also bleibt mir nichts anderes übrig, als den aktuellen Stand soweit zurück zu bauen, bis auch mit diesem das erwünschte Event-Verhalten habe.
Hm, könnte es daran liegen, dass ich im Style des CustomControls das MouseDown-Event nutze (um das Aussehen des Buttons zu verändern)? Wie verhält sich das im Zusammenspiel mit anderen (evtl. nachgelagerten) Events?
Danke für die Links, aber ich hatte mich zuvor schon durch die Abhandlungen über AddHandler etc. durchgewühlt. Und da meine CustomControl von ButtonBase abgeleitet ist und hier zwar zusätzliche DependencyProperties, aber keine AttachedProperties registriert, hilft mir AddOwner vermutlich auch nicht weiter.
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur Msdn Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die Msdn Website verlassen.