Reb*_*ott 4 wpf caliburn.micro fody-propertychanged
我有一个使用Caliburn.Micro的WPF应用程序.当我希望应用程序等待在后台完成某些工作时,我希望能够使用阴影和进度环(来自MahApps.Metro)覆盖应用程序.
我现在所拥有的实际上是有效的,但叠加层在设计时始终处于开启状态.我的ShellView窗口看起来像这样:
<Window ...>
...
<Grid>
...
<Rectangle x:Name="waitShadow" Fill="#3f000000" Stroke="Black" StrokeThickness="0" Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}" Grid.RowSpan="2"/>
<ContentControl ... Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}">
<Controls:ProgressRing ...> <!-- from MahApps.Metro -->
</Controls:ProgressRing>
</ContentControl>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我的ShellViewModel班级有一个公共bool属性IsWaiting,当我把它设置为true阴影和响铃出现,一切都被禁用.当我将它设置为false它去恢复正常,所以绑定工作(我使用Fody用的PropertyChanged插件).唯一的问题是该Visibility属性在设计时没有崩溃.
有没有更好的方法让叠加层在设计时有效?
你可以设置FallbackValue你的绑定,Collapse它将在设计时间
Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=Collapsed}"
Run Code Online (Sandbox Code Playgroud)
您也可以使IsWaiting一个DependancyProperty并设置默认的,但我觉得这个最简单的解决方案.
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |