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 :

[WPF][ListBox]Type d'elements d'une ListBox est une form?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut [WPF][ListBox]Type d'elements d'une ListBox est une form?
    Bonjour,

    Est ce que, en type d'elements d'une ListBox, peut-on mettre un element WindowsForms ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Oui: il suffit de les intégrer dans des contrôle de type WindowsFormsHost

  3. #3
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    ok.

    Je pose la question, car je me demande ce que ca va donner avec le probleme du melange entre winform et WPF.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Normalement, cela doit bien fonctionner

  5. #5
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    J'ai une classe comme suit (classe representant un element de ma listebox) :

    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
     
    public class ImageFile
        {
            public int id;
            private Uri _uri;
            private String _path;
     
            public ImageFile(int id,string path)
            {
                _path = path;
                _uri = new Uri(_path);
     
                this.id = id;
            }
            public override string ToString()
            {
                return Path;
            }
            public String Path { get { return _path; } }
            public Uri Uri { get { return _uri; } }
            public System.Drawing.Image Imag {
                get
                {
                    /*JpegBitmapDecoder test = new JpegBitmapDecoder(_uri,
                      BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);*/
                    //return BitmapFrame.Create(test.Frames[0].Thumbnail);
     
                    return System.Drawing.Image.FromFile(_path);
                } 
            }
        }
    et voici mon DataTemplate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <DataTemplate DataType="{x:Type pd:ImageFile}">
                <Border VerticalAlignment="Center" HorizontalAlignment="Center" Padding="4" Margin="2" Background="White">
                    <WindowsFormsHost>
                        <wf:PictureBox Image="{Binding Imag}" />
                    </WindowsFormsHost>
                </Border>
            </DataTemplate>
    Le problème est que le binding n'est pas accepté car ce n'est pas une dependencyproperty.

    Je précise que le but de ma listebox est de lister des images jpeg. J'utilisais avant uniquement des éléments WPF pour les afficher.
    Cependant, j'utilisais au début l'image "complète", et chaque image dans ma listebox consommait à peu près 20Mo de mémoire vive (meme si mon image en 4000pixel par 3000 est redimensionnée dans la listebox).
    Donc, j'ai voulu utiliser le thumbnail, me permettant de descendre à 5Mo de mémoire par image, correspondant à la taille du fichier jpeg, ça me convenait assez bien, mais certaines images que je gère ne possedent pas de thumb, et d'autres ont le thumb endommagé.

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Je ne comprend pas pourquoi tu as besoin de passer par un WindowsFormsHost

Discussions similaires

  1. Afficher une recherche après une sélection dans une ListBox
    Par vitalus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/05/2015, 18h04
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. afficher une valeur sur une feuille lorsqu'une checkbox est cochée
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2008, 14h39
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 1
    Dernier message: 19/02/2007, 16h58

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