Wyłącz RealTimeStylus dla aplikacji WPF
Program Windows Presentation Foundation (WPF) ma wbudowaną obsługę przetwarzania danych wejściowych dotykowych systemu Windows 7. Obsługa jest obsługiwana za pośrednictwem danych wejściowych w czasie rzeczywistym platformy tabletu jako OnStylusDown, OnStylusUpi zdarzeń OnStylusMove . System Windows 7 udostępnia również wielodotykowe dane wejściowe jako komunikaty okien systemu Win32 WM_TOUCH. Te dwa interfejsy API wykluczają się wzajemnie na tym samym HWND. Włączenie wprowadzania dotykowego za pośrednictwem platformy tabletu (ustawienie domyślne dla aplikacji WPF) powoduje wyłączenie WM_TOUCH komunikatów. W związku z tym, aby używać WM_TOUCH do odbierania komunikatów dotykowych z okna WPF, należy wyłączyć wbudowaną obsługę rysików w WPF. Ma to zastosowanie w scenariuszu, takim jak okno WPF hostujące składnik korzystający z WM_TOUCH.
Aby wyłączyć nasłuchiwanie WPF z danymi wejściowymi rysika, usuń wszystkie obsługę tabletu dodane przez okno WPF.
Przykład
Poniższy przykładowy kod pokazuje, jak usunąć domyślną obsługę platformy tabletu przy użyciu odbicia.
public static void DisableWPFTabletSupport()
{
// Get a collection of the tablet devices for this window.
TabletDeviceCollection devices = System.Windows.Input.Tablet.TabletDevices;
if (devices.Count > 0)
{
// Get the Type of InputManager.
Type inputManagerType = typeof(System.Windows.Input.InputManager);
// Call the StylusLogic method on the InputManager.Current instance.
object stylusLogic = inputManagerType.InvokeMember("StylusLogic",
BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
null, InputManager.Current, null);
if (stylusLogic != null)
{
// Get the type of the stylusLogic returned from the call to StylusLogic.
Type stylusLogicType = stylusLogic.GetType();
// Loop until there are no more devices to remove.
while (devices.Count > 0)
{
// Remove the first tablet device in the devices collection.
stylusLogicType.InvokeMember("OnTabletRemoved",
BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
null, stylusLogic, new object[] { (uint)0 });
}
}
}
}
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla