我有一个 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 触摸设备上响应不佳。
任何线索都会非常受欢迎。
在此先感谢,伊万。