应用程序在wp7中的响应性差

时间:2013-01-25 07:01:10

标签: windows-phone-7 responsive-design

我在图像的manipStarted事件(或Tap事件)中显示一个MessageBox,当我们在V2012中执行商店监控测试时,导致App响应性差。

Xaml图像控制 -

 <Image HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" 
        Width="104" Margin="90,60,0,0" Grid.Row="1"  
        ManipulationStarted="Image_ManipulationStarted_1" 
        Source="Background.png"/ >

事件代码 -

private void Image_ManipulationStarted_1(object sender, 
                                         ManipulationStartedEventArgs e)
{
    var m = MessageBox.Show("The file will be saved here.", "File Save", MessageBoxButton.OKCancel);

    if (m == MessageBoxResult.OK)
    {
        int temp = 10;
    }
}

当我在上面的示例代码的开放式商店测试工具包中执行“自动化测试”时,它导致响应性差,并且当我们将应用程序上传到市场时导致认证失败。以下是步骤 -

  1. 右键单击Visual Studio 2012中的解决方案探索中的“应用程序名称”

  2. Open store test kit - &gt;自动测试 - &gt;启动Windows Phone分析 - &gt;选择App Analysis - &gt;单击开始会话(应用程序将启动)

  3. 应用程序将开始运行

  4. 在图像上执行Tap事件,将出现MessageBox并单击OK。

  5. 点击V2012中的结束会话(应用程序将退出)。

  6. App Analysis的结果将显示在摘要中。在该摘要中,您可以看到响应性前面的红线表示应用程序响应性很差,导致认证失败。

  7. 我的要求就是这样。我有一个图像(按钮)和点击,即点击我想做一些操作。

    注意 - 构建针对WP7,但应用程序在WP8模拟器上运行。

    此致

    Mukesh Sharma

1 个答案:

答案 0 :(得分:0)

在事件处理程序中放置一个模态对话框将锁定调用线程,直到对话框被解除。这可能会给出较差的响应度评级。

您可能想要尝试的是在事件处理程序中禁用图像进行操作并将MessageBox调度到事件处理程序返回后的某个时间,例如(未经测试);

private void Image_ManipulationStarted_1(object sender, 
                                         ManipulationStartedEventArgs e)
{
    // <disable image manipulation here>
    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
        var m = MessageBox.Show("The file will be saved here.", 
                               "File Save", MessageBoxButton.OKCancel);

        if (m == MessageBoxResult.OK)
        {
            int temp = 10;
        }
        // <enable image manipulation again>
    }
}