2

我有一个 WPF 应用程序需要完成一些后台任务,这些任务在我的笔记本电脑上运行良好,但在装有 Windows 7 的平板电脑上运行不正常。

单击屏幕,在完成某些后台作业时显示加载图像,并在作业结束时显示包含一些信息的对话框。您按下对话框上的按钮并返回主屏幕。

在显示对话框的最后的平板电脑中,您必须按一次屏幕以使 GUI“激活”,然后再次让应用程序检测到单击。就像 ui 线程在后台任务之后被“禁用”并且需要触摸屏幕才能再次处于活动状态。这很烦人,因为用户必须多次按下按钮才能执行操作。这种行为只发生在平板电脑上,而不是笔记本电脑上......

这是代码:

public void processTouch(Point p)
{
  Task getPendingDocsTask = Task.Factory.StartNew(GetPendingDocs, CancellationToken.None,     TaskCreationOptions.None, TaskScheduler.Default);
  Task afterGetPentingDocsTask = getPendingDocsTask.ContinueWith(w => AfterGetPendingDocs(), TaskScheduler.FromCurrentSynchronizationContext());  
}

private void GetPendingDocs()
{
    Thread.Sleep(500);            
}

private void AfterGetPendingDocs()
{            
     mainprogresscircle.Visibility = System.Windows.Visibility.Hidden;
     this.Background = (Brush)bc.ConvertFrom("#013857");
     WindowDialog aDialog = new WindowDialog(this);
     aDialog.ShowDialog();           
}

在对话框中单击时的功能是:

private void Button_Click(object sender, RoutedEventArgs e)
{            
   this.Close();          
}

以及对话框上按钮的 XAML

<s:SurfaceButton                          
                    Margin="-4"
                    BorderBrush="Transparent"
                    BorderThickness="0"                                
                    Width="200"
                    Height="75"                        
                    HorizontalAlignment="Center"                    
                    Name="OpenButton" 
                    HorizontalContentAlignment="Center"
                    VerticalContentAlignment="Center"
                    FontFamily="Tahoma"
                    FontSize="20"
                    Content="Aceptar" 
                    Background="#78B41E" 
                    Foreground="White"
                    Click="Button_Click"  
                    IsManipulationEnabled="True"
                    />

我也尝试过使用 BackgroundWorker 和调度程序,并且行为是相同的。在普通计算机上完美运行,但在 Windows 7 触摸设备上响应不佳。

任何线索都会非常受欢迎。

在此先感谢,伊万。

4

0 回答 0