【问题标题】:Trying to update the UI WPF尝试更新 UI WPF
【发布时间】:2013-11-21 16:27:33
【问题描述】:

在我的 WPF 应用程序中,我的 Demo_click 事件中有以下代码: cmdDoMyThing 是一个切换按钮

cmdDoMyThing.IsChecked = True
cmdDoMyThing.UpdateLayout()
Delay()
showAnotherDialog()
cmdDoMyThing.IsChecked = False

这是延迟()

Sub Delay()
    Thread.Sleep(2000)
End Sub

我的问题是我想在此方法完成之前更新 Demo_Click 事件中的 UI。因此 cmdDoMyThing 被选中并在 UI 中显示选中状态,然后等待 2 秒,调用 showAnotherDialog 并且当用户关闭 showAnotherDialog 时取消选中 cmdDoMyThing,更新 UI 并在 Demo_click 事件中继续该过程。 我就像疯了一样试图让它发挥作用,但我找不到办法。 有什么建议吗?提前谢谢你。

【问题讨论】:

  • 老兄,我建议你仔细看看 MSDN 上的 Windows Presentation Foundation 页面......你似乎对如何使用它感到非常困惑......它不是 WinForms.
  • 你不再需要使用Call关键字了!
  • +1 表示 不是 WinForms,肯定不是!
  • 谢谢你们的cmets,我知道这不是表格,我正在寻求一些关于我的问题的指导。请关注用户界面的行为:)
  • 看看使用Dispatcher 而不是Thread.Sleep。我实际上在这里有another answer,这可能有助于理解调度程序及其工作原理:)

标签: wpf vb.net


【解决方案1】:

如果我理解正确,我认为您正在寻找模态窗口/对话框。在打开对话框而不是显示时尝试this 方法

【讨论】:

  • 可能是我没有很好地解释我的问题。显示对话框不是问题。我必须复制这种行为:显示 ToggleButton 单击,等待 2 秒,显示对话框,取消选中 ToggleButton,等待 2 秒,然后做另一件事。但这一切都在同一个方法中。问题是 UI 看起来在我需要时不会刷新。谢谢你的评论:)
猜你喜欢
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
相关资源
最近更新 更多