Ich versuche manuell ein MouseLeftButtonDown-Ereignis in einem WPF-Steuerelement programmgesteuert zu erstellen, da ich das Microsoft Surface SDK verwende, das nicht MouseLeftButtonDown-Ereignisse, sondern ContactDown-Ereignisse auslöst. Im Grunde versuche ich das MouseLeftButtonDown-Ereignis auf das Steuerelement herunter zu schieben, um das richtige Verhalten auf dem Steuerelement auszulösen, während ein ContactDown-Ereignis behandelt wird.
Ich vermute, dass ich irgendwie die RaiseEvent-Methode für das Steuerelement verwenden muss, um dies mit MouseButtonEventArgs zu tun, aber ich habe einige Probleme, die Parameter herauszufinden.
Vielen Dank im Voraus für Ihre Hilfe!
Sie können Maus- und Schlüsselereignisse mit dem Win32-Interop spoofieren. Untersuchen Sie die SendInput-Funktion auf MSDN / pinvoke.net .
Beachten Sie, dass dadurch das System und andere Anwendungen denken, dass die Maus tatsächlich geklickt wurde. Wenn Sie nur ein WPF-Ereignis initiieren möchten, versuchen Sie RaiseEvent( new RoutedEventArgs( UIElement.MouseLeftButtonDownEvent ) )
.
Der Wunsch, ein bestimmtes Ereignis in einem Steuerelement auszulösen, ist häufig ein Indikator für ein Designproblem im Code. Ereignishandler sollten Verhalten auslösen, nicht ausführen . Ich würde vorschlagen, dass Sie den Code, der die vom Ereignishandler MouseLeftButtonDown
ausgelöste Aktion ausführt, in eine separate Methode verschieben. Dann kann dieselbe Methode vom ContactDown
-Ereignishandler aufgerufen werden.
Tags und Links wpf c# mouseleftbuttondown raiseevent