IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 Phone .NET Discussion :

[Débutant] ouvrir une pop up dés le lancement de l'application (celle ci se bloque) [Windows Phone 8]


Sujet :

Windows Phone .NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut [Débutant] ouvrir une pop up dés le lancement de l'application (celle ci se bloque)
    Bonjour, j'ai encore un soucis sur ma petite application :

    J'aimerais que dès le lancement de l'application, une popup s'ouvre. J'ai tenté par exemple de faire un
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    popup.IsOpen = true;
    dans le main juste après le
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    InitializeComponent();

    Mais celle ci ne s'affiche pas au démarrage, mais en plus la popup semble être comme "plantée" car après avoir tenté de l'ouvrir comme ceci si je tente de la fermer et de la réouvrir plus loin le code dans des fonctions événements sur un clique par exemple (la méthode classique pour ouvrir une popup) :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void bouton_Click(object sender, RoutedEventArgs e)
    {
          popup.IsOpen = true;
    }

    la popup ne s'ouvre même pas non plus !

    Il y a une explication ?

    Merci pour votre aide.

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Salut

    Essai de l'appelé dans NavigationTo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
    	base.OnNavigatedTo(e);
    	if (e.NavigationMode == NavigationMode.New)
    	{
    		var popup = new Popup();
    		var content = new MonUserControldelamort(popup);
    		content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
    		popup.Child = content;
    		popup.VerticalOffset = 0;
    		popup.IsOpen = true;
    		popup.IsOpen = true;
    	}
    }
    la ligne e.NavigationMode == NavigationMode.New permet d'exécuté que la première fois que cette page s'ouvre, tu peux enlever ce test si tu veux

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Merci pour ta réponse ultra-rapide ! (et pour la deuxieme aide de la journée ^^ )

    Il y a la ligne :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    var content = new MonUserControldelamort(popup);

    qui rale du coup j'ai essayer coté xaml de créer un MonuserControldelamort autour de la popup capricieuse comme ceci :

    Code Xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <UserControl x:Class="MonUserControldelamort">
            <Popup x:Name="popup_bordel" Margin="0,0">
                <Border Background="Black" Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}" Width="{Binding ElementName=LayoutRoot,Path=ActualWidth}">
                    <StackPanel Margin="20,20">
                        <StackPanel Orientation="Vertical">
                            <TextBox x:Name="textbox" Text= "" InputScope="Digits" Height="80" Foreground="#FF000000" Background="#DEFFFFFF" SelectionBackground="#DEFFFFFF" />
                            <Button x:Name="btn" Margin="0,30,0,0" Content="Valider"  Width="460" VerticalAlignment="Bottom" HorizontalAlignment="Center" Click="btn_try_mdp_Click" BorderBrush="#DEFFFFFF" Foreground="#DEFFFFFF" />
                            <TextBlock x:Name="error" Text="" TextAlignment="Center" TextWrapping="Wrap" FontSize="30" Height="40" />
                        </StackPanel>
                    </StackPanel>
                </Border>
            </Popup>
            </UserControl>

    Mais je dois pas m'y prendre comme il faut car le compilo n'en veut toujours pas

  4. #4
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    et dans ton code-behind de ton control, tu commences bien comme ça :
    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
    namespace MonApplicationQuiTue
    {
        public partial class MonUserControldelamort : UserControl
        {
            private Popup popup = null;
     
            public MonUserControldelamort()
                : this(null)
            {
            }
     
            public MonUserControldelamort(Popup popup)
            {
                InitializeComponent();
                this.popup = popup;
     
            }
    		//...

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    hum ok, je suis perdu ...

    bien sur j'ai bien le usercontrol suivant :

    Code c# : 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
    namespace monapp
    {
        public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
            public MainPage()
            {
                  InitializeComponent();
                  Init_mes_trucs();
                  DataContext = App.ViewModel;
             }
    
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if (!App.ViewModel.IsDataLoaded)
                {
                    App.ViewModel.LoadData();
                }
    	        base.OnNavigatedTo(e);
                
                    var popup = new Popup();
                    var content = new MonUserControl(popup);
    	        content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
    	        popup.Child = content;
    		popup.VerticalOffset = 0;
    		popup.IsOpen = true;
            }
    
            // reste du code ...

    et la popup coté xaml :

    Code Xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <Popup x:Name="popup_bordel" Margin="0,0">
                <Border Background="Black" Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}" Width="{Binding ElementName=LayoutRoot,Path=ActualWidth}">
                    <StackPanel Margin="20,20">
                        <StackPanel Orientation="Vertical">
                            <TextBox x:Name="textbox" Text= "" InputScope="Digits" Height="80" Foreground="#FF000000" Background="#DEFFFFFF" SelectionBackground="#DEFFFFFF" />
                            <Button x:Name="btn" Margin="0,30,0,0" Content="Valider"  Width="460" VerticalAlignment="Bottom" HorizontalAlignment="Center" Click="btn_Click" BorderBrush="#DEFFFFFF" Foreground="#DEFFFFFF" />
                            <TextBlock x:Name="error" Text="" TextAlignment="Center" TextWrapping="Wrap" FontSize="30" Height="40" />
                        </StackPanel>
                    </StackPanel>
                </Border>
            </Popup>


    Et du coup j'arrive pas à implémenter ce que tu m'a demandé

    en suivant ton exemple j'ai tenté de rajouter un

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class MonUserControldelamort : UserControl

    avant, ou encore de créer un autre :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public MainPage(popup popup)
            {
                  InitializeComponent();
                this.popup = popup;

    Mais rien à faire

  6. #6
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    ça devient compliqué de suivre.
    As-tu une exception qui apparaît ? Si oui peux-tu indiquer le message ?
    Si une fois ta page ouverte, place un bouton où au click tu affiches la popup, Est-ce que ça fonctionne ?

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Et bien je tente ce code :

    Code c# : 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
    namespace monapp
    {
        public partial class MainPage : PhoneApplicationPage
        {
            public MainPage(Popup popup)
            {
                InitializeComponent();
                this.popup = popup; // ne marche pas
            }
    
            public MainPage()
            {
                InitializeComponent();
                DataContext = App.ViewModel;
            }
    
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if (!App.ViewModel.IsDataLoaded)
                {
                    App.ViewModel.LoadData();
                }
    	  base.OnNavigatedTo(e);
    	  var popup = new Popup();
              var content = new MainPage(popup);
              content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
    	  popup.Child = content;
    	  popup.VerticalOffset = 0;
    	  popup.IsOpen = true;
            }

    la ligne que j'ai mise en gras ne compile pas car :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	1	'monapp.MainPage' does not contain a definition for 'popup' and no extension method 'popup' accepting a first argument of type 'monapp.MainPage' could be found (are you missing a using directive or an assembly reference?)
    Une idée ? (merci pour ton aide en tout cas )

  8. #8
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Crée un UserControl,
    Dans le XAML, dans un premier temps, met un "hello world"
    dans le C# met ça :

    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
    namespace MonApplicationQuiTue
    {
        public partial class MonUserControldelamort : UserControl
        {
            private Popup popup = null;
     
            public MonUserControldelamort()
                : this(null)
            {
            }
     
            public MonUserControldelamort(Popup popup)
            {
                    this.popup = popup;
            }
    }
    Dans ta MainPage, met ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
    	base.OnNavigatedTo(e);
    	if (e.NavigationMode == NavigationMode.New)
    	{
    		var popup = new Popup();
    		var content = new MonUserControldelamort(popup);
    		content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
    		popup.Child = content;
    		popup.VerticalOffset = 0;
    		popup.IsOpen = true;
    		popup.IsOpen = true;
    	}
    }
    Et met en remarque le reste de ton code ! ou mieux crée une appTest pour ça.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    C'est bon j'ai créer mon user control qui se nomme : WindowsPhoneControl1, dans mon MainPage.xaml.cs j'ai donc :

    Code c# : 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
     
    namespace monapp
    {
        public partial class MonUserControldelamort : UserControl
        {
            private Popup popup = null;
     
            public WindowsPhoneControl1()
                : this(null)
            {
            }
     
            public WindowsPhoneControl1(Popup popup)
            {
                this.popup = popup;
            }
        }
     
        public partial class MainPage : PhoneApplicationPage
        {
            public MainPage()
            {
                InitializeComponent();
                DataContext = App.ViewModel;
            }
     
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if (!App.ViewModel.IsDataLoaded)
                {
                    App.ViewModel.LoadData();
                }
    	        base.OnNavigatedTo(e);
    	        if (e.NavigationMode == NavigationMode.New)
    	        {
    		        var popup = new Popup();
    		        var content = new WindowsPhoneControl1(popup);
    		        content.Width = System.Windows.Application.Current.Host.Content.ActualWidth;
    		        popup.Child = content;
    		        popup.VerticalOffset = 0;
    		        popup.IsOpen = true;
    		        popup.IsOpen = true;
    	        }
            }

    coté mon MainPage.xaml j'ai rajouté :

    Code Xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <UserControl x:Name="WindowsPhoneControl1" />

    Et mon WindowsPhoneControl1.xaml :

    Code Xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
     
            <StackPanel x:Name="LayoutRootjeej" Background="{StaticResource PhoneChromeBrush}">
                <TextBlock Text="My User Control" FontSize="34"/>
            </StackPanel>
     
        </Grid>

    Mais j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error	1	Method must have a return type	...\MainPage.xaml.cs
    sur les lignes :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public WindowsPhoneControl1()
                : this(null)
    et
     
    public WindowsPhoneControl1(Popup popup)
     
    et
     
    var content = new WindowsPhoneControl1(popup);

    de mon MainPage.xaml.cs

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    J'avais pas du tout l'habitude d'utiliser les UserControl. Du coup j'ai compris mon erreur, je mettais le code c# destiné au nouveau usercontrol dans le mainpage.cs

    Du coup j'ai bien mon usercontrol, ca compile sans soucis, mais ca ne marche toujours pas :o

  11. #11
    En attente de confirmation mail
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 338
    Points : 366
    Points
    366
    Par défaut
    Salut,

    Je viens de te faire un article où j'y ai mis le code le plus simple possible :
    http://www.peug.net/2014/04/07/ouvri...-personnalise/

    Par de ça pour voir ce qui ne va pas dans ton code

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 50
    Points
    50
    Par défaut
    Ah super ! Ca marche !

    Merci beaucoup pour cette réponse complete

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#][Débutant]Ouvrir une nouvelle fenêtre en fermant l'ancienne
    Par neuromencien dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/04/2011, 09h20
  2. Ouvrir une Pop-up Aspx à partir d'un page ASP
    Par Nicodemus dans le forum ASP.NET
    Réponses: 9
    Dernier message: 09/12/2008, 14h10
  3. Réponses: 3
    Dernier message: 21/08/2006, 11h01
  4. Ouvrir une pop-up depuis une pop-up ?
    Par romulus dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/03/2006, 22h50
  5. [XHTML] [débutant] Ouvrir une page dans une page xhtml
    Par wikers dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/02/2006, 16h20

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