【问题标题】:Windows phone 8 async web request with blocking user touch带有阻止用户触摸的 Windows phone 8 异步 Web 请求
【发布时间】:2014-01-27 05:14:09
【问题描述】:

我需要知道在 Windows Phone 8 中进行 Web 请求的最佳方式是什么。 就我而言,我将其分为 4 个步骤。

  1. 显示不确定的进度条
  2. 阻止任何用户交互
  3. 请求和处理数据
  4. 取消进度条,取消ui块

现在我唯一的问题是第 2 步。

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

例如我有用户名和密码框和一个登录按钮,我希望当用户按下登录时,直到请求完成,用户不能点击任何 ui 项目,如用户名、密码框或登录按钮。

谢谢

【问题讨论】:

  • 最好的方法是通过创建后台线程并在完成后更新 UI 来异步调用 Web 服务..我认为您不需要阻止任何用户交互..
  • 你说的已经完成了,但是屏蔽ui很重要,因为我不希望用户在之前的请求完成之前再次点击登录按钮,或者更改文本值等等。​​

标签: windows-phone-8 restsharp


【解决方案1】:

使用TextBox'es 和ButtonIsEnabled 属性。当您进入下载功能时将其设置为false,并在错误的情况下返回true,或者只是导航/更新ui是成功的情况。

【讨论】:

  • 好的,我正在考虑这个问题,但我正在寻找任何暂时阻止用户界面的方法,但可能以双向模式将 isEnabled 绑定到属性是最好的解决方案.
  • 或者,您可以在所有页面上显示不透明度=0.5 的 Grid 或 StackPanel 以使 UI 变灰并禁止任何输入。可以以相同的方式使用弹出窗口,选择很少。但是计时器应该由您自己制作。
  • 是的,在您的屏幕全尺寸上有一个弹出窗口并更改其不透明度,您可以创建一个带有弹出窗口和不确定进度条的自定义控件,并在每次调用 Web 服务时使用它。在调用执行工作之前后台进程的方法设置弹出窗口和不透明度,在您从调度程序更新 UI 后更改不透明度并禁用弹出窗口..
  • 好的,我在windows phone 开发方面非常新,所以请原谅我的无知,但是pop 是一个很好的解决方案,qus 是,我可以让popup 不可调用吗?我的意思是用户不能通过后按或其他方式取消弹出窗口?
  • 你可以试试Windows Phone Toolkit的CustomMessageBox。有全屏选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多