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 Presentation Foundation Discussion :

Afficher les fichiers d'un dossier [Débutant(e)]


Sujet :

Windows Presentation Foundation

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Afficher les fichiers d'un dossier
    Bonjour,

    J'ai trouvé ce code (ici) :

    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
     
    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.IO;
     
    namespace WpfApplication
    {
    	public partial class Window1 : Window
    	{
    		public Window1()
    		{
    			Title = "Use a WrapPanel";
    			Height = 400;
    			Width = 500;
     
    			WrapPanel MyWrapPanel = new WrapPanel();
     
    			string[] dirs = Directory.GetFiles(@"C:\Windows\Web\Wallpaper");
    			foreach (string dir in dirs)
    			{
    				FileInfo file = new FileInfo(dir);
     
    				Label lbl = new Label();
    				lbl.Width = 100;
    				lbl.Content = file.Name;
     
    				MyWrapPanel.Children.Add(lbl);
    			}
    			Content = MyWrapPanel;
    		}
    	}
    }
    J'ai voulu le modifier pour qu'il charge les images jpg présentent dans un dossier précis.
    Voici mon code :

    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
    50
    51
    52
    53
    54
    55
    56
     
    using System;
    using System.Windows;
    using System.Windows.Controls;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
     
     
    namespace WpfApplication1
    {
        public partial class Window1 : Window
        {
            public Window1()
            {
     
                WrapPanel MyWrapPanel = new WrapPanel();
     
                string[] dirs = Directory.GetFiles(@"C:\Windows\Web\Wallpaper\Architecture", "*.jpg");
     
                string longueur = dirs.Length.ToString();
     
                MessageBoxResult result = MessageBox.Show(longueur);
     
                foreach (string dir in dirs)
                {
                    FileInfo file = new FileInfo(dir);
     
                    Image lbl = new Image();
                    lbl.Width = 200;
     
                    BitmapImage myBitmap = new BitmapImage();
     
                    myBitmap.BeginInit();
                    myBitmap.UriSource = new Uri(@"C:\Windows\Web\Wallpaper\Architecture\"+dir);
     
                    myBitmap.DecodePixelWidth = 200;
                    myBitmap.EndInit();
     
                    lbl.Source = myBitmap;
     
                    MyWrapPanel.Children.Add(lbl);
     
                }
                Content = MyWrapPanel;
            }
        }
    }
    Il me trouve le bon nombre d'image jpg dans le dossier mais ne les affiche par car il m'affiche une exception :
    L'exception XamlParseException n'a pas été gérée
    Quelqu'un pourrait me dire ce qui ne va pas dans mon code?

    Merci

  2. #2
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    Salut,

    C'est une erreur au niveau du code de la fenêtre Window1.xaml.
    Montre nous ce code.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Window x:Class="WpfApplication1.Window1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window1" Height="400" Width="500">
     
    </Window>

    J'ai rien ajouté dedans

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Montre les détails de l'exception (InnerException en particulier)

    De toutes façons, ce n'est pas du tout une bonne manière de faire ce que tu veux ! Il y a des contrôles de liste qui sont fait pour afficher des listes (ListBox, ListView, ItemsControl, etc). Il faut charger la liste des fichiers, et la mettre comme ItemsSource du contrôle de liste. Ensuite tu peux utiliser un DataTemplate pour personnaliser l'affichage.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Pour l'InnerException : {"Le format du chemin d'accès donné n'est pas pris en charge."}

    Je débute donc j'ai voulu le faire comme ça, si il y a des solutions plus simple je suis preneur.
    Avec les contrôles de liste dont tu parles, on peut ajouter et retirer des images du dossier sans que cela ne pose problème?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par A_cube Voir le message
    Pour l'InnerException : {"Le format du chemin d'accès donné n'est pas pris en charge."}
    Bizarre... pourtant le chemin que tu passes à Directory.GetFiles semble correct. Que contient la StackTrace de la InnerException ?

    Citation Envoyé par A_cube Voir le message
    Je débute donc j'ai voulu le faire comme ça, si il y a des solutions plus simple je suis preneur.
    Avec les contrôles de liste dont tu parles, on peut ajouter et retirer des images du dossier sans que cela ne pose problème?
    Tu peux ajouter des fichiers au dossier, mais ça ne sera pas pris en compte automatiquement, c'est à toi de le gérer.
    Pour que le contrôle de liste reflète les ajouts et suppressions dans la liste utilisée comme ItemsSource, il faut utiliser une ObservableCollection

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Elle contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    à ListesImages.MainWindow..ctor() dans D:\Projets\2012_Inside_Catalog\Test_WPF\Listes_Images\ListesImages\ListesImages\MainWindow.xaml.cs:ligne 43

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah ok, je vois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myBitmap.UriSource = new Uri(@"C:\Windows\Web\Wallpaper\Architecture\"+dir);
    dir contient le chemin absolu du fichier, donc si tu ajoutes le préfixe comme tu fais, tu obtiens quelque chose comme ça :

    C:\Windows\Web\Wallpaper\Architecture\C:\Windows\Web\Wallpaper\Architecture\toto.jpg
    Ce qui n'est évidemment pas correct...

    Il faut donc utiliser directement dir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myBitmap.UriSource = new Uri(dir);

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Super merci.

    Je vais aussi tester les contrôles de liste. Comme ça je progresserai !

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

Discussions similaires

  1. Afficher uniquement les fichier .mp3 du dossier
    Par dercom dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2013, 11h08
  2. [2.x] Comment afficher les fichiers du dossier src avec wamp
    Par Invité dans le forum Symfony
    Réponses: 0
    Dernier message: 05/06/2013, 11h18
  3. Réponses: 1
    Dernier message: 18/02/2009, 16h04
  4. Réponses: 7
    Dernier message: 08/01/2007, 19h18
  5. Enumerer les fichiers d'un dossier
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 10/03/2006, 22h28

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