Jestem nowy przy użyciu WPF. Mam okno WPF z datagridem, które uruchamia proces po dwukrotnym kliknięciu. Działa to świetnie, ale kiedy robię to w tablecie (z Windows 7), używając ekranu dotykowego, proces nigdy się nie zdarza. Muszę więc emulować podwójne kliknięcie zdarzeniami dotykowymi. Czy ktoś może mi w tym pomóc?Emuluj podwójne kliknięcie zdarzenie w Datagrid z touchDown
5
A
Odpowiedz
0
Zobacz How to simulate Mouse Click in C#? dla jak emulować kliknięcie myszy (w systemie Windows formach), ale działa w WPF wykonując:
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
Pierwszy dodać funkcję myszy zdarzenie kliknij:
/// <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;
}
Dodaj zdarzenie click do jednego z formantów WPF:
private void btnDoSomeThing_Click(object sender, RoutedEventArgs e)
{
// Do something
}
Wreszcie Zadzwoń zdarzenie click z dowolnej funkcji:
btnDoSomeThing_Click(new object(), MouseClickEvent());
Aby zasymulować podwójne kliknięcie, dodać kliknij dwukrotnie zdarzenie jak PreviewMouseDoubleClick i upewnij się, że każdy kod rozpoczyna się w oddzielnej funkcji:
private void lvFiles_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DoMouseDoubleClick(e);
}
private void DoMouseDoubleClick(RoutedEventArgs e)
{
// Add your logic here
}
Aby wywołaj zdarzenie z podwójnym kliknięciem, po prostu wywołaj je z innej funkcji (np. KeyDown):
private void someControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter)
DoMouseDoubleClick(e);
}
Powiązane problemy
- 1. Animacja jQuery: Ignoruj podwójne kliknięcie
- 2. knockoutjs pojedyncze i podwójne kliknięcie
- 3. Podwójne kliknięcie w pytonie selenowym
- 4. Highcharts - podwójne kliknięcie zdarzenia
- 5. Podwójne kliknięcie zdarzenia na ramce okna WPF
- 6. Podwójne kliknięcie wyłączona wybierz opcję, aby umożliwić
- 7. Wysyłaj zdarzenie za pomocą $ emuluj z dyrektywy do kontrolera
- 8. Jak wykrywać podwójne kliknięcie myszy w WPF?
- 9. Jak powiązać Command dwukrotne kliknięcie na wiersz w DataGrid
- 10. Catching podwójne kliknięcie w Cocoa OSX
- 11. jak włączyć podwójne kliknięcie w skrypt akcji?
- 12. Sposób na podwójne kliknięcie ekranu blokady w Androidzie?
- 13. WPF: CellEditingTemplate jak ustawić fokus na wewnętrznej kontroli przez podwójne kliknięcie lub kliknięcie
- 14. Jak wykrywać podwójne kliknięcie paska przewijania widoku listy?
- 15. Zatrzymaj jQuery Mobilne zdarzenie przeciągania podwójne propagowanie
- 16. C# treeview ignoruj podwójne kliknięcie tylko w polu wyboru
- 17. WPF DataGrid wartość komórki zmienione zdarzenie
- 18. WPF Datagrid Row Edycja "ZAKOŃCZONO" zdarzenie
- 19. zdarzenie wyzwalające jQuery gdy kliknięcie poza elementem
- 20. Jak uzyskać selektor, z którym związane jest zdarzenie "kliknięcie"?
- 21. Zdarzenie dwukrotnego kliknięcia w wiersz WPF DataGrid programowo
- 22. Pytanie o użyteczność HTML - (podwójne) kliknięcie, aby zaznaczyć tekst.
- 23. Jak zaimplementować podwójne kliknięcie prawym przyciskiem myszy dla winformów?
- 24. JS zatrzymanie podświetlania pojawiające się na (podwójne) kliknięcie
- 25. Podwójne kliknięcie podkreślić zmienna Sublime Text 3 obejmują $
- 26. Zdarzenie dwukrotne kliknięcie komórki w widoku siatki danych
- 27. Emuluj serwer o promieniu w .NET
- 28. Emuluj starszą wersję chrome w narzędziach programistycznych
- 29. Jak wykonać dwukrotne kliknięcie elementu z Kątomierzem?
- 30. Podwójne klamry [[]] kontra Podwójne klamry {{}} w polimerze
Dziękuję bardzo! – sonseiya
@somseiya Bez problemu –