Entspricht einer keypreview-Eigenschaft in WPF

8

Ich überlege, ob ich von WinForms für einige meiner Apps zu WPF wechsle, derzeit arbeite ich an dem kombinierten Barcode-Leser / Texteingabe-Programm (Patientenformulare für das Gesundheitswesen).

Um die Barcode-Zeichen verarbeiten zu können, verlasse ich mich auf die Keypreview-Eigenschaft in WinForms (da Barcodes gescannt werden können, unabhängig davon, welches Steuerelement den Fokus hat).

Aber ich kann anscheinend keine KeyPreview-Eigenschaft in VS2008 oder VS2010 für eine WPF-App finden.

Gibt es einen alternativen Ansatz / Lösung, um meine Barcode-Zeichen in WPF zu behandeln?

Rgrds Henry

    
Henry Skoglund 16.12.2009, 23:56
quelle

3 Antworten

5

Verwenden Sie die Überschreibung in Ihren eigenen Benutzersteuerelementen oder Steuerelementen (dies ist eine Überschreibung von UIElement )

%Vor%

Wenn Sie eine Vorschau der Taste auf einem Element anzeigen möchten, das Sie nicht erstellen, können Sie Folgendes tun:

%Vor%

und dann einen Handler wie folgt haben: -

%Vor%

Wenn Sie das Ereignis als behandelt markieren ( e.Handled = true; ), wird das KeyDown-Ereignis ausgelöst.

    
Aran Mulholland 17.12.2009 04:10
quelle
3

WPF verwendet Event Bubbling und Tunneling. Mit anderen Worten reisen die Ereignisse den visuellen Elementbaum hinunter und hinauf. Einige Ereignisse haben ein entsprechendes Vorschau-Ereignis. So wird MouseDown eine PreviewMouseDown haben, auf die Sie antworten können. Sehen Sie sich diesen Link an und scrollen Sie nach unten zum Abschnitt WPF Input Events.

    
Qberticus 17.12.2009 00:21
quelle
3

Danke, es hat funktioniert! Das einzige Problem war, dass ich in VB nicht C # codiere, aber die Grundidee hält. Es ist angebracht, ein Etikett aus dem Nichts zu erstellen und es in den Ereignisstrom einzufügen.

Wenn jemand anderes an der gleichen Lösung interessiert ist, aber in VB for WPF, hier ist mein Testprogramm, es schafft es, alle 'a' Zeichen zu tippen, egal welches Steuerelement den Fokus hat:

%Vor%

P.S. Dies war mein erster Post auf Stackoverflow, wirklich eine nützliche Seite. Vielleicht kann ich später selbst einige Fragen hier beantworten: -)

    
Henry Skoglund 18.12.2009 00:34
quelle

Tags und Links