Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

navigation entre fenetre


Sujet :

Windows Presentation Foundation

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : avril 2015
    Messages : 63
    Points : 39
    Points
    39
    Par défaut navigation entre fenetre
    Bonjour à tous,
    Je galère sur un truc qui devrait être simple à la base...mais non...
    pour ouvrir une nouvelle fenêtre2, on utilise le code suivant ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      WINDOWS2 = new Window2();
                        WINDOWS2.Show();
    j'utilise "this.Hide" pour cacher la fenêtre 1..jusqu'a là aucun problème...
    maintenant je cherche depuis plusieurs heures comment faire pour ré afficher la fenêtre 1, si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WINDOWS1 = new Window1();
                        WINDOWS1.Show();
    le code m'ouvre une nouvelle fenêtre 1, moi je veux afficher la fenêtre 1 cachée, en gardant tous ce qui avaient été saisis par l'utilisateur....
    le code suivant fonctionne mais c'est un vrai bordel, et c'est pas propre:
    je place le code suivant dans la fenêtre 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      public static Window1 staticVar = null; 
      public Window1()
            {
                InitializeComponent();
                staticVar = this;
     
            }
    et dans la fenetre 2sur un clic de bouton, je mets le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     private void Button_Click_1(object sender, RoutedEventArgs e)
            {          
     
                        Window1.staticVar.Show();            
            }
    Il y aurait il une autre solution à votre connaissance ??
    Merci de votre aide.
    Greg

  2. #2
    Membre expert
    Inscrit en
    avril 2008
    Messages
    2 227
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : avril 2008
    Messages : 2 227
    Points : 3 736
    Points
    3 736
    Par défaut
    bonjour

    le code suivant fonctionne mais c'est un vrai bordel, et c'est pas propre:
    C'est un vrai "bordel de Biskra" pour légionnaires (Biskra est une grande palmeraie ou oasis chez moi)
    Pour ce faire il faut passer par le class App et la propriete Owner du MainForm.

    Code behind.cs du class App :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    namespace WpfDeuxForms
    {
        /// <summary>
        /// Logique d'interaction pour App.xaml
        /// </summary>
        public partial class App : Application
        {
            public App()
            {
     
            }
     
     
            private List<Window> documents = new List<Window>();
            public List<Window> Documents
            {
                get { return documents; }
                set { documents = value; }
            }
        }
    }
    code xaml du form "fille1" et pas de code -behind...
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Window x:Class="WpfDeuxForms.WinFille1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="WinFille1" Height="300" Width="300">
        <Grid>
            <TextBlock  HorizontalAlignment="Center"  
                        VerticalAlignment="Center"
                        Text="Fille1"/>
        </Grid>
    </Window>

    code xaml du form "fille2" et pas de code -behind...
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Window x:Class="WpfDeuxForms.WinFille2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="WinFille2" Height="300" Width="300">
        <Grid>
            <TextBlock  HorizontalAlignment="Center"  
                        VerticalAlignment="Center"
                        Text="Fille2"/>
        </Grid>
    </Window>
    code xaml du form "fille2" et pas de code -behind...
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Window x:Class="WpfDeuxForms.WinFille3"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="WinFille21" Height="300" Width="300">
        <Grid>
            <TextBlock  HorizontalAlignment="Center"  
                        VerticalAlignment="Center"
                        Text="Fille3"/>
        </Grid>
    </Window>


    code xaml du main form ..
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <Window x:Class="WpfDeuxForms.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <StackPanel>
            <Button 
                x:Name="btnFille1"  Content="Show Fille1"
                HorizontalAlignment="Center"
                Click="btnFille1_Click"/>
            <Separator Height="20"/>
            <Button 
                Grid.Column="1"
                x:Name="btnFille2"  Content="Show Fille2"
                HorizontalAlignment="Center"
                Click="btnFille2_Click"/>
            <Separator Height="20"/>
            <Button 
                x:Name="btnFille3"  Content="Show Fille3"
                HorizontalAlignment="Center"
                Click="btnFille3_Click"/>
        </StackPanel>
    </Window>

    et son code -behind.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    namespace WpfDeuxForms
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
     
            public MainWindow()
            {
                InitializeComponent();
            }
     
            private void btnFille1_Click(object sender, RoutedEventArgs e)
            {
                WinFille1 doc = new WinFille1();
                doc.Owner = this;
                doc.Closing += new System.ComponentModel.CancelEventHandler(doc_Closing); doc.Show();
                ((App)Application.Current).Documents.Add(doc);
                ((App)Application.Current).MainWindow.Hide();
            }
            private void btnFille2_Click(object sender, RoutedEventArgs e)
            {
                WinFille2 doc = new WinFille2();
                doc.Owner = this;
                doc.Closing += new System.ComponentModel.CancelEventHandler(doc_Closing);
                doc.Show();
                ((App)Application.Current).Documents.Add(doc);
                ((App)Application.Current).MainWindow.Hide(); 
            }
     
     
            private void btnFille3_Click(object sender, RoutedEventArgs e)
            {
                WinFille3 doc = new WinFille3();
                doc.Owner = this;
                doc.Closing += new System.ComponentModel.CancelEventHandler(doc_Closing); doc.Show();
                ((App)Application.Current).Documents.Add(doc);
                ((App)Application.Current).MainWindow.Hide();
            }
     
            void doc_Closing(object sender, System.ComponentModel.CancelEventArgs e)
            {
                this.Show();
            }
     
     
        }
    }
    bon code...

Discussions similaires

  1. pb de navigation entre les fenetre
    Par ludojojo dans le forum C++Builder
    Réponses: 17
    Dernier message: 30/05/2008, 10h44
  2. Réponses: 1
    Dernier message: 05/01/2008, 19h15
  3. [Jdialog] Question sur communication entre fenetre
    Par Oreste dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 17/03/2005, 11h23
  4. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09
  5. Difference entre fenetre et boite de dialog
    Par billyboy dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2003, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo