Dans WPF, comment assombrir toute la zone d'écran lors de l'ouverture d'une nouvelle fenêtre? p>
Aussi après la fermeture de la fenêtre, comment puis-je revenir à l'effet temporaire? P>
4 Réponses :
Vous pouvez créer une fenêtre transparente de fond comme ceci: et remplacer n'utilise pas darkwindow.hide ( ) au lieu de fermer (). p> p> messagebox.show ("" bonjour "); code> avec mywindow.showmodal ( ); code>. Peut-être, vous aurez besoin de faire myWindow code> toujours en haut. P>
Merci mykola bogdiuk. Je crée une bordure sombre et transparente sur la fenêtre puis j'ai montré une nouvelle fenêtre
Voici ma version, si vous voulez gris et flouez la fenêtre parent:
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;
}
Cela fonctionne bien, mais comment puis-je revenir à l'état d'origine une fois que le showdialog () se ferme?
Peu importe :) this.effect = null; Retour à la normale
moyen le plus simple strong>: Utilisez XAML pop-up comme décrit ci-dessous pour plus de détails visitez le lien ci-dessous.
http://www.c-sharscorner.com/ UPLOADFILE / Mahesh / Utilisation-xaml-popup-in-wpf / p> Après cela pour brouiller la grille principale sur EventHandler pour l'événement qui montre la fenêtre contextuelle, définissez l'opacité comme indiqué dans Ci-dessous C # Code P> if (pop.IsOpen == false)
{
pop.IsOpen = true;
grdMain.Opacity = 0.4;
}
else
{
pop.isopen=false;
}
Diminuez l'opacité de la fenêtre actuelle,
pour ex: p>
Solution simple
Vous pouvez vérifier ce lien: Stackoverflow.com/Questtions/5825527/...