作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,
我有一个基于 Prism4 的 WPF 应用程序。执行慢速操作时,我想显示一个繁忙的屏幕。我将有大量的屏幕,所以我试图在框架中构建一个单一的解决方案,而不是在每个屏幕上添加繁忙的指示器。
这些长时间运行的操作在后台线程中运行。这允许更新 UI(好)但不会阻止用户使用 UI(坏)。我想做的是用旋转拨号类的东西覆盖一个控件,并让该控件覆盖整个屏幕(带有 DIV 的旧 HTML 技巧)。当应用程序繁忙时,控件将显示从而阻止任何进一步的交互以及显示旋转的东西。
为了进行设置,我认为我可以将我的应用程序屏幕与 spinny 的东西(具有更大的 ZIndex)一起放在 Canvas 中,然后根据需要使 spinny 的东西可见。
然而,这越来越难了。 Canvas 似乎没有很好地为此设置,我想我可能是在吠叫错误的树。
我将不胜感激任何帮助。谢谢。
最佳答案
我已经用几个程序做到了这一点。简而言之:
(这对于 MVVM 来说是最简单的。自从我将代码隐藏用于这样的事情已经很久了,我真的不能说是否有一个好的方法来做到这一点。)
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid>
<Border BorderBrush="Black" BorderThickness="1" Background="#80000000" Visibility="Collapsed">
<Grid>
<TextBlock Margin="0" TextWrapping="Wrap" Text="Busy...Please Wait" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="26.667" FontWeight="Bold" Foreground="#7EFFFFFF"/>
</Grid>
</Border>
<DockPanel x:Name="LayoutRoot">
<CheckBox Content="CheckBox" VerticalAlignment="Top"/>
<TextBlock TextWrapping="Wrap"><Run Text="TextBlock"/></TextBlock>
<UserControl x:Name="ViewViewView"/>
</DockPanel>
</Grid>
关于wpf - 如何在 wpf 屏幕上显示忙碌消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4505644/
我是一名优秀的程序员,十分优秀!