C# 触摸设备上的WPF任务未正确返回到UI线程
我有一个WPF应用程序,有一些后台任务要做,在我的笔记本电脑上运行得很好,但在装有Windows7的平板电脑上运行得不好 单击屏幕,在完成某项后台工作时显示加载图像,并在工作结束时显示包含某些信息的对话框。按下对话框上的按钮,返回主屏幕 在显示对话框的最后的平板电脑中,您必须按下屏幕一次,使GUI处于“活动”状态,然后再次按下应用程序以检测单击。就像ui线程在后台任务后被“禁用”,需要触摸屏幕才能再次激活。这很烦人,因为用户必须多次按下按钮才能执行操作。这种行为只发生在平板电脑上,而不是笔记本电脑上 代码如下:C# 触摸设备上的WPF任务未正确返回到UI线程,c#,wpf,touch,task,ui-thread,C#,Wpf,Touch,Task,Ui Thread,我有一个WPF应用程序,有一些后台任务要做,在我的笔记本电脑上运行得很好,但在装有Windows7的平板电脑上运行得不好 单击屏幕,在完成某项后台工作时显示加载图像,并在工作结束时显示包含某些信息的对话框。按下对话框上的按钮,返回主屏幕 在显示对话框的最后的平板电脑中,您必须按下屏幕一次,使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和dispatcher合作,行为也是一样的。在普通电脑上工作正常,但在Windows7触摸设备上响应不好
任何线索都很好
提前感谢,,
伊万