【问题标题】:WPF and MVVM. Display and hide a label with a timeoutWPF 和 MVVM。显示和隐藏带有超时的标签
【发布时间】:2018-07-12 15:33:33
【问题描述】:
在我的 MVVM 应用程序中,我希望创建一个自动关闭弹出窗口来通知用户一些信息(例如“数据更改已成功保存”)。
所以,我在表单中放置了一个标签,绑定到一个 VM 属性。然后,我希望设置我的消息并在延迟(1 秒)后取消它。但这似乎不起作用。应用程序只需等待一段时间,并显示最终状态(即:当用户按下“保存”按钮时,应用程序“等待”一秒钟,然后标签为空)。
有什么想法吗?谢谢
【问题讨论】:
标签:
wpf
mvvm
popup
timeout
show-hide
【解决方案1】:
为什么不能在 WPF 中使用普通弹出窗口
<Popup Margin="10,10,0,13" Name="Popup1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="194" Height="200" IsOpen="True">
<StackPanel>
<TextBlock Name="McTextBlock"
Background="LightBlue" >
This is popup text
</TextBlock>
<Button Content="This is button on a Pupup" />
</StackPanel>
public void show()
{
Popup1.IsOpen = true;
Thread t = new Thread(hide);
t.Start();
}
private void hide() {
Thread.Sleep(5000);
Popup1.IsOpen = false;
}
当你想显示弹窗时调用显示函数