Создайте свойство bool в вашей виртуальной машине:
// I am using Prism.Mvvm.BindableBase
public bool IsBlur
{
get {return _isBlur;}
set {SetProperty(ref _isBlur, value);}
}
В вашем Xaml,
<Window ....> <!--remove the Effect-->
<Window.Style>
<Style TargetType="{x:Type Window}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsBlur, Mode=OneWay}" Value="True">
<Setter Property="Effect">
<Setter.Value>
<BlurEffect .../> <!-- set some property here as necessary -->
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Style>
Итак, вам нужно
IsBlur = true; // to turn on the blur effect
// or
IsBlur = false; // to turn off the blur effect
======== ОБНОВЛЕНИЕ ==========
Итак, я думаю, вы спрашиваете, когда следует включить / выключить эффект размытия.Как правило, вы должны установить BlurEffect в 2 разных местах:
- Во время инициализации окна (в конструкторе или обработчике события Loaded) установите IsBlur = true для начала.
- В вашемМетод [получить данные с сервера], вам нужно иметь это как асинхронную задачу, когда она завершится, она должна обновить IsBlur = false.
Относительно того, как долго, это зависит от того, как долго [получить данные с сервера] требуется для завершения.Я не думаю, что это то, что вы должны отложить.Если вам действительно нужно отложить, просто установите задержку на [получить данные с сервера].