silverlight keydown-Ereignis nicht ausgelöst, der für die Pfeiltasten
Habe ich eine Leinwand innerhalb einer scrollview. Ich legte eine keydown-Ereignisprozedur der scrollview. Für die meisten Tasten, wird der handler aufgerufen wird.
Jedoch für Sie die Pfeiltasten, der handler wird nicht aufgerufen. Statt der scrollview ruft Bildlauf in die entsprechende Richtung.
Ich auch schonmal ein keyup-handler der scrollview und das keyup nicht aufgerufen werden, für die Pfeiltasten.
Gibt es eine Möglichkeit, um den Pfeil-Taste die Veranstaltung hier?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie einfach das KeyUp-Ereignis ein. Funktioniert wie ein Charme.
Fand ich diesen dummen hack zu machen, damit es funktioniert. Einstellung der scrollview nicht ein tabstop hält Sie vom Essen über die wichtigsten Ereignisse.. aber dann hatte ich ein weiteres Textfeld auf der Seite, die plötzlich IMMER den Fokus hatte, da die scrollview nicht mehr. Also ich behoben, indem eine unsichtbare textbox Fokus erhalten.
Edit: ich hatte auch, um das Textfeld aus der Leinwand, denn obwohl unsichtbar, seine Umrisse noch auftauchte.
2. Edit: habe ich eine textbox, denn das war das erste, was ich fand, dass könnte die Erfassung KeyDown-Ereignisse. Jedoch ein UserControl kann. So wäre es wahrscheinlich besser, die Praxis zu verwenden, ein UserControl statt ein unsichtbares Textfeld. Sie können call Focus() auf das Benutzersteuerelement, wenn nötig.
Dies ist eine mögliche Antwort - ich hatte noch keine Gelegenheit, dies zu testen. Ich hatte ähnliche Probleme in der Vergangenheit, obwohl, wenn ein Steuerelement verbraucht die Ereignisse, bevor Sie bekommen können, bei Ihnen. Es gibt ein paar Dinge, die Sie ausprobieren können:
Außer für 1) alle diese zählen als hacks, aber wirklich viel Glück, ich hoffe, einer von Ihnen arbeitet für Sie!
"Verwenden Sie das PreviewKeyDown-event, ich denke, das ist, was es heißt. Sie können lassen Sie erhalten Sie in der Veranstaltung, bevor es verbraucht durch die Kontrolle."
Dieser funktioniert. Setzen Sie einfach die event-Argumente "Handled = true" und das ScrollViewer-Element (oder ListBox) nicht greifen Sie auf das Ereignis, nachdem Sie bereits gemeistert. Ich brauchte nicht zu verwenden, die IsTabStop-Eigenschaft für das Listenfeld, obwohl; und es schien nicht, etwas zu tun sowieso.