Ich bin neu mit WPF. Ich habe ein WPF-Fenster mit einem Datagrid, das einen Prozess startet, wenn ein Doppelklick erfolgt. Das funktioniert großartig, aber wenn ich dies in einem Tablet (mit Windows 7) über den Touchscreen mache, passiert der Prozess nie. Also muss ich das Doppelklickereignis mit Berührungsereignissen emulieren. Kann mir bitte jemand helfen?Emulieren Doppelklick Ereignis in Datagrid mit TouchDown
5
A
Antwort
0
Siehe How to simulate Mouse Click in C#?, wie ein Mausklick (in Windows-Formulare) zu emulieren, aber es funktioniert in WPF, indem Sie:
using System.Runtime.InteropServices;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
public void DoMouseClick()
{
//Call the imported function with the cursor's current position
int X = //however you get the touch coordinates;
int Y = //however you get the touch coordinates;
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
}
}
}
0
Zuerst fügen Sie ein Mausereignis Klickfunktion:
/// <summary>
/// Returns mouse click.
/// </summary>
/// <returns>mouseeEvent</returns>
public static MouseButtonEventArgs MouseClickEvent()
{
MouseDevice md = InputManager.Current.PrimaryMouseDevice;
MouseButtonEventArgs mouseEvent = new MouseButtonEventArgs(md, 0, MouseButton.Left);
return mouseEvent;
}
ein Click-Ereignis zu einem Ihrer WPF-Steuerelemente hinzufügen:
private void btnDoSomeThing_Click(object sender, RoutedEventArgs e)
{
// Do something
}
Schließlich Rufen Sie das Click-Ereignis von jeder Funktion:
btnDoSomeThing_Click(new object(), MouseClickEvent());
Doppelklick zu simulieren, ein Doppelklickereignis wie Preview hinzufügen und sicherstellen, dass jeder Code beginnt in einer separaten Funktion:
private void lvFiles_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DoMouseDoubleClick(e);
}
private void DoMouseDoubleClick(RoutedEventArgs e)
{
// Add your logic here
}
zu Rufen Sie das Doppelklickereignis auf, rufen Sie es einfach von einer anderen Funktion (wie KeyDown) an:
private void someControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
DoMouseDoubleClick(e);
}
Verwandte Themen
- 1. JQuery .on mit Doppelklick Ereignis
- 2. Highcharts - Doppelklick Ereignis
- 3. Itemclick-Ereignis in Datagrid
- 4. Touchdown gehalten libgdx
- 5. C# Listenfeld Element Doppelklick Ereignis
- 6. Implementieren des Doppelklick-Ereignisses auf Silverlight 4 Datagrid
- 7. Meteor Clik Ereignis, Doppelklick; Verwenden nur JS
- 8. dojo datagrid Ereignis anhängen Problem
- 9. wie Ereignis in DataGrid in C hinzufügen #
- 10. Datagrid Textfeld, das GridView1_RowCommand Ereignis
- 11. wpf datagrid auf klicken Ereignis
- 12. Umgang mit Maus Scroll-Ereignis von Fenster-Datagrid in C#
- 13. Verarbeitung mit Python emulieren?
- 14. SilverLight 4, DataGrid, DataGridColumnHeader, MouseLeftButtonDown-Ereignis
- 15. WPF Toolkit DataGrid Spalte Größe Ereignis
- 16. Android in Swing emulieren
- 17. WPF DataGrid: CommandBinding zu einem Doppelklick anstelle der Verwendung von Ereignissen
- 18. Listview Doppelklick (VB .net)
- 19. Doppelklick-Ereignis bei 2 verschiedenen Elementen löst immer noch aus
- 20. FabricJS Doppelklick auf Objekte
- 21. wie Doppelklick Ereignis auf Senden Schaltfläche zu verhindern
- 22. Holen Sie sich das Element Doppelklick-Ereignis von Listview
- 23. DataGridView Element Doppelklick
- 24. Doppelklick in Python Selen
- 25. Zeile in einem Silverlight DataGrid automatisch bearbeiten
- 26. CheckedChanged Ereignis für Dynamisch generierte Checkbox Spalte in Datagrid (Asp.Net)
- 27. Hinweise zum Umgang mit Preview und Drag & Drop-Ereignis Gleichzeitige in Wpf
- 28. Umgang mit Doppelklick auf Ereignisse auf ListBox Elementen in C#
- 29. Einzelklick bearbeiten in WPF DataGrid
- 30. jQuery-Animation: Doppelklick ignorieren
Vielen Dank! – sonseiya
@somseiya Kein Problem –