private void InitTouchSupport(object sender, RoutedEventArgs e) { if (TouchSupportOperationHelper.HasDisabledTouch & TouchSupportOperationHelper.HasOpenedTouchFix) { TouchSupportOperationHelper.RegisterMessageTouch(this); } }
private void DisableTouchCheckBox_OnClick(object sender, RoutedEventArgs e) { var isChecked = DisableTouchCheckBox.IsChecked ?? false; if (isChecked) { TouchSupportOperationHelper.DisableWpfTouch(); DisableTouchCheckBox.IsEnabled = false; } if (TouchSupportOperationHelper.HasDisabledTouch & TouchSupportOperationHelper.HasOpenedTouchFix) { TouchSupportOperationHelper.RegisterMessageTouch(this); } }
private void OpenTouchCheckBox_OnClick(object sender, RoutedEventArgs e) { var isChecked = OpenTouchCheckBox.IsChecked ?? false; TouchSupportOperationHelper.HasOpenedTouchFix = isChecked; if (isChecked) { TouchSupportOperationHelper.RegisterMessageTouch(this); } var isTouch = TouchNativeMethods.IsTouchWindow(new WindowInteropHelper(this).Handle, 0x00000002); if (TouchSupportOperationHelper.HasDisabledTouch & TouchSupportOperationHelper.HasOpenedTouchFix) { TouchSupportOperationHelper.RegisterMessageTouch(this); } }
private static async void OnIsOpenTouchFixWhenFailedPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { //暂时只支持窗口触摸失效修复 ContentDialog后续需要时再添加 if (d is Window window) { //只有开启修复,关闭相关逻辑没有相关场景暂不添加。 if (e.NewValue is bool isOpenTouchFixWhenFailed && isOpenTouchFixWhenFailed) { // 延迟进行,防止影响窗口性能,暂时设置为5秒 await Task.Delay(TimeSpan.FromSeconds(5)); //var canTouch = WindowsTouchHelper.CheckTouchOnlyOnce(out _); //if (!canTouch) //{ TouchSupportOperationHelper.RegisterMessageTouch(window); //Log.Info($"{nameof(window)}触摸失效,已自动修复by{nameof(TouchSupportOperationHelper)}"); //} } } }