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);
            }
        }
示例#4
0
        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)}");
                    //}
                }
            }
        }