У меня есть приложение WPF, использующее Caliburn.Micro. Я хочу иметь возможность накладывать на приложение кольцо тени и прогресса (из 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>
Мой класс ShellViewModel
имеет общедоступное логическое свойство IsWaiting
, и когда я устанавливаю для него значение true
, появляется тень и кольцо, и все отключается. Когда я устанавливаю его на false
, он возвращается в нормальное состояние, поэтому привязка работает (я использую Fody с надстройку PropertyChanged). Единственная проблема заключается в том, что свойство Visibility
не свернуто во время разработки.
Есть ли лучший способ иметь оверлей, который работает во время разработки?
Visibility
по умолчанию не возвращается кCollapsed
, как я думал. - person Rebecca Scott   schedule 06.12.2012