none
Commands RRS feed

  • Frage

  • Hallo,
    in meiner Anwendung setze ich auf Commands, was auch soweit funktioniert. Mein Problem besteht darin, das die InputGestures nicht so funktionieren, wie ich es möchte. Ich muss, damit es funktioniert, immer auf ein bestimmtes UserControl klicken.


    Hier der Code:

    CommandBindings.Add(new CommandBinding(ApplicationCommands.Delete, RemoveControlFromPage_Executed));


    Ich bin für jede Hilfe Dankbar.

    Patrick


    • Bearbeitet P.Arnold Mittwoch, 11. Januar 2012 12:08
    Mittwoch, 11. Januar 2012 12:07

Alle Antworten

  • Hast du das Binding mal an dein Root Control angewendet und getestet?

    Donnerstag, 12. Januar 2012 10:07
    Beantworter
  • Wenn ich die Codezeile

    CommandBindings.Add(new CommandBinding(ApplicationCommands.Delete, RemoveControlFromPage_Executed));
    


    mit seiner Execute-Event im Hauptfenster verwende, dann funktioniert es so wie gedacht. Das Event soll allerdings im UserControl ausgelöst werden und nicht im Hauptfenster. Ich muss also im UserControl das Event abonnieren und da finde ich irgendwie nichts richtiges.

    In einem Buch habe ich gelesen, dass es auch über CommandBinding geht. Also habe ich die obere Codezeile auch in mein UserControl verwendet und die Execute-Methode aus dem Hauptfenster entfernt.

    Codezeile im Hauptfenster:

    CommandBindings.Add(new CommandBinding(ApplicationCommands.Delete));
    


    Codezeile im UserControl:

    CommandBindings.Add(new CommandBinding(ApplicationCommands.Delete, RemoveControlFromPage_Executed));
    

    Geht aber nicht!

    Donnerstag, 12. Januar 2012 10:31
  • Das Problem ist evtl., dass das UserControl den Fokus erhalten muss. Deswegen der Klick vorher auf das UserControl...

     

    Donnerstag, 12. Januar 2012 11:07
    Beantworter
  • So hätte ich es auch gedacht aber ich muss auf ein anderes UserControl klicken.

    Die Anwendung sieht aus, wie ein Zeichenprogramm. Der Bildschirm teilt sich in zwei Teile. Der linke Teil, das ist der Teil den ich anklicken muss, damit das CommandBinding funktioniert, beinhaltet Objekte die ich per Drag and Drop in den rechten Teil verschieben kann. Beim Entfernen der Objekte, aus dem rechten Teil, setzte ich das Command (ApplicationCommands.Delete) ein.  

    Eine weite Funktion ermöglicht mir den Inhalt des rechten Teils als Vollbild anzuzeigen. Der linke Teil und eine RibbonBar werden dann ausgeblendet. Das Umschalten, zur Vollbildansicht und zurück funktioniert auch über ein CommandBinding mit InputGestures .

    Donnerstag, 12. Januar 2012 11:57