2014-01-27 34 views
1

我需要知道什么是最好的方式来做在Windows Phone 8的Web请求。 就我而言,我使它成为一个4步过程。Windows手机8异步Web请求与阻止用户触摸

  1. 显示不确定的进度栏
  2. 块中的任何用户交互
  3. 做请求和处理数据
  4. 取消进度条和取消UI

现在我的唯一的问题是在步骤2中的块

在网络操作正在进行时阻止任何用户触摸响应的最佳方式是什么? d进度条正在显示?

例如我有用户名和密码框和一个按钮登录,我想当用户按下登录,直到请求完成,用户可以点击任何UI项目,如用户名,密码框或登录按钮。

感谢

+1

最好的方法是通过创建一个后台线程并更新UI完成后异步调用Web服务。我不认为你需要阻止任何用户交互。 –

+0

你说的事情已经完成,但阻止用户界面很重要,因为我不希望用户在先前的请求完成之前再次单击登录按钮,或更改文本值或其他内容。 –

回答

0

使用TextBox“ES和ButtonIsEnabled财产。当您进入下载功能时,将其设置为false,并在发生错误时返回true或仅导航/更新ui即表示成功。

+0

好的,我正在考虑这个问题,但我一直在寻找阻止ui的任何方法,但可能会绑定在双向模式下启用属性是最好的解决方案。 –

+2

或者,您可以在整个页面上显示不透明度= 0.5的Grid或StackPanel,以使用户界面变灰,并禁止任何输入。弹出窗口可以以相同的方式使用,但有很少的选择。但是,定时器应该由你来做。 – crea7or

+0

是啊有一个弹出窗口的全尺寸和改变其不透明度,你可以创建一个自定义控件弹出和不确定的进度条,并在每次调用Web服务时使用它。在调用后台进程的do工作方法之前设置弹出窗口和不透明度,你从调度程序更新UI后,更改不透明度,并禁用弹出窗口。 –