我在图像的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;
}
}
当我在上面的示例代码的开放式商店测试工具包中执行“自动化测试”时,它导致响应性差,并且当我们将应用程序上传到市场时导致认证失败。以下是步骤 -
右键单击Visual Studio 2012中的解决方案探索中的“应用程序名称”
Open store test kit - &gt;自动测试 - &gt;启动Windows Phone分析 - &gt;选择App Analysis - &gt;单击开始会话(应用程序将启动)
应用程序将开始运行
在图像上执行Tap事件,将出现MessageBox并单击OK。
点击V2012中的结束会话(应用程序将退出)。
App Analysis的结果将显示在摘要中。在该摘要中,您可以看到响应性前面的红线表示应用程序响应性很差,导致认证失败。
我的要求就是这样。我有一个图像(按钮)和点击,即点击我想做一些操作。
注意 - 构建针对WP7,但应用程序在WP8模拟器上运行。
此致
Mukesh Sharma
答案 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>
}
}