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/...