9
votes

Comment assombrir toute la zone d'écran et briller ma fenêtre ouverte dans WPF?

Dans WPF, comment assombrir toute la zone d'écran lors de l'ouverture d'une nouvelle fenêtre?

Aussi après la fermeture de la fenêtre, comment puis-je revenir à l'effet temporaire?


1 commentaires

Vous pouvez vérifier ce lien: Stackoverflow.com/Questtions/5825527/...


4 Réponses :


14
votes

Vous pouvez créer une fenêtre transparente de fond comme ceci: xxx

et remplacer messagebox.show ("" bonjour "); avec mywindow.showmodal ( ); . Peut-être, vous aurez besoin de faire myWindow toujours en haut.

edit

n'utilise pas darkwindow.hide ( ) au lieu de fermer ().


1 commentaires

Merci mykola bogdiuk. Je crée une bordure sombre et transparente sur la fenêtre puis j'ai montré une nouvelle fenêtre



28
votes

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;
    }


2 commentaires

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



0
votes

moyen le plus simple strong>: Utilisez XAML pop-up comme décrit ci-dessous xxx pré>

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;    
}    


0 commentaires

9
votes

Diminuez l'opacité de la fenêtre actuelle,

pour ex: xxx


1 commentaires

Solution simple