Как в WPF затемнить всю область экрана при открытии нового окна?
Также после закрытия окна, как мне отменить временный эффект?
Как в WPF затемнить всю область экрана при открытии нового окна?
Также после закрытия окна, как мне отменить временный эффект?
Вы можете создать фоновое прозрачное окно следующим образом:
var darkwindow = new Window() {
Background = Brushes.Black,
Opacity = 0.4,
AllowsTransparency = true,
WindowStyle = WindowStyle.None,
WindowState = WindowState.Maximized,
Topmost = true
};
darkwindow.Show();
MessageBox.Show("Hello");
darkwindow.Close();
и замените MessageBox.Show("Hello");
на mywindow.ShowModal();
. Возможно, вам нужно сделать mywindow
всегда на вершине.
Изменить
Не используйте darkwindow.Hide () вместо Close ().
Вот моя версия, если вы хотите сделать серым и размыть родительское окно:
private void btnOpenSettings_Click(object sender, RoutedEventArgs e)
{
// settings for the parent window
// set the transparency to the half
this.Opacity = 0.5;
// blur the whole window
this.Effect = new BlurEffect();
// Set the options for the settings (child) window
SettingsForm wdwSettings = new SettingsForm()
{
Owner = this,
ShowInTaskbar = false,
Topmost = true
};
// Open the child window
wdwSettings.ShowDialog();
//restore Opacity and remove blur after closing the child window
this.Opacity = 1;
this.Effect = null;
}
Уменьшить непрозрачность текущего окна,
Например:
{
this.Opacity = 0.5;//Decrease opacity
MessageBox.Show("Ur Window Darken");
this.Opacity = 100;//Reset the opacity
}
Самый простой способ: используйте всплывающее окно XAML, как описано ниже.
<Popup x:Name="pop" IsOpen="False" >
</Popup>
Для получения более подробной информации перейдите по ссылке ниже. http://www.c-sharpcorner.com/UploadFile/mahesh/using-xaml-popup-in-wpf/
После этого, чтобы размыть основную сетку в обработчике событий для события, которое показывает всплывающее окно, установите прозрачность, как показано в коде C # ниже.
if (pop.IsOpen == false)
{
pop.IsOpen = true;
grdMain.Opacity = 0.4;
}
else
{
pop.isopen=false;
}