WPF Ajouter un popup pour confirmer une action

Temps de lecture: 2 minutes

Les popups (à ne pas confondre avec les Dialog Box) sont utiles pour confirmer qu’une action s’est déroulée bien ou non. Vous avez juste à cliquer pour que la popup se ferme.

Commençons par construire une application WPF de façon classique.

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication3"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
<Popup Margin="10,10,0,13" Name="Popup1" HorizontalAlignment="Left"   
 VerticalAlignment="Top" Width="194" Height="200" IsOpen="True">  
       <TextBlock Name="MonTextBlock"   
             Background="LightBlue" >  
        texte de popup   
       </TextBlock>  
</Popup>

    </Grid>
</Window>

La valeur de l’attribut IsOpen à True veut dire qu’il est visible. Ce que l’on veut faire par exemple c’est de rendre la popup visible avec un bouton et de mettre un bouton dans le popup pour fermer le popup, donc on va jouer sur la propriété IsOpen. Quand on lance l’application ça donne ça:

WPF popup

Vous aurez remarqué que j’ai mis les attributs HorizontalOffset et VerticalOffset, donnés en valeur relatives, sinon la popup est en bas à gauche de la fenêtre de l’application.

 

Popup offset WPF

Je vous invite à jouer sur les différents attribut. Mais celui qui nous intéresse le plus est l’attribut IsOpen. En effet je m’en sers pour des confirmation d’insertion de données dans une table, j’ai besoin d’être informé quand l’insertion s’est fait avec succès. Quitte à cliquer un bouton supplémentaire pour fermer la popup.

Utiliser le code behind pour ouvrir/fermer la popup

//le nom de la popup est popup1
// pour ouvrir le popup
popup1.IsOpen = True;

//pour fermer le popup
popup1.Isopen = False;

A ne pas confondre avec la propriété popup1.IsVisible qui est en fait un simple getter.

Vous aimerez aussi...