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.

Unanswered CustomControl gibt Buttonbase.Click-Event nicht weiter

  • Dienstag, 10. November 2009 14:33
     
     
    Hallo zusammen,

    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?

    Danke,
    Thorsten

Alle Antworten

  • Dienstag, 10. November 2009 15:53
     
     
    Hallo Thorsten,

    kannst du ein kleines Beispiel posten, damit man dein Problem besser nachvollziehen kann.
  • Dienstag, 10. November 2009 19:41
     
     
    Hallo Thorsten,

    mit etwas code ließe sich mehr sagen. Aber schau doch vielleicht mal hier:

    http://msdn.microsoft.com/de-de/library/ms597484.aspx

    oder hier:

    http://msdn.microsoft.com/de-de/library/ms747183.aspx#Class_Handling_of_Routed_Events

    Ich würde auch mal checken, was eine Auswertung der RoutedEventArgs

    e.Source einerseits

    und

    e.OriginalSource andererseits

    in CustomControl_Click der Testanwendung ergibt.


    Beste Grüße,
    M.
  • Dienstag, 10. November 2009 20:53
     
     
    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,

    Thorsten
  • Dienstag, 10. November 2009 20:56
     
     
    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.