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

Silverlight Discussion :

Compilation des images et DataTemplate


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut Compilation des images et DataTemplate
    Bonjour,

    Suite à un problème de lien vers une image dans un DataTemplate, cf ce sujet déjà résolu, j'ai un problème de compilation.

    Mon image est donc affichée dans un DataTemplate chargé dans un pop-up. Elle est compilée en mode "Resource". Deux cas se présentent :

    - Si l'image a déjà été affichée dans l'application, elle s'affiche nickel dans le DatatTemplate.
    - Si l'image n'a pas encore été affichée ailleurs dans l'application, elle ne se charge pas dans le DataTemplate. Et là c'est la loose.

    Comment compiler mes images afin de toujours y avoir accèe dans mon DataTemplate?

    Merci

    Jean

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Pas vraiment très clair.

    Tu pourrais montrer du code (tes DataTemplates et les endroits ou tu les utilisent) et aussi expliquer un peu plus clairement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Voici un peu de code :

    MainPage.xaml
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    <UserControl.Resources>
            <DataTemplate x:Key="Wizard1">
     <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                        <Image Visibility="{Binding MessageValidationVisibility}" HorizontalAlignment="Left" VerticalAlignment="Center" Height="20" Width="20" Source="/MonProjet;component/Assets/Images/Icones/AlertOrangeTriangle.png" Margin="10,0,0,0" />
                        <TextBlock Visibility="{Binding MessageValidationVisibility}" Height="16" HorizontalAlignment="Left" VerticalAlignment="Center"  Name="textBlockChampsOblig" Text="{Binding MessageValidationText}" Margin="10,0,0,0" />
                    </StackPanel>
      </DataTemplate>
        </UserControl.Resources>
    ...

    Le DataTemplate Wizard1 est appelé depuis un ViewModel

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DXDialog Dialog = new DXDialog("Wizard", DialogButtons.YesNoCancel);
    CurrentPage = WizardPage.Wizard1;
    ShowPage();

    DXDialog est une fenêtre de dialogue de la librairie DevExpress.

    Et donc l'image AlertOrangeTriangle.png ne s'affiche que si elle a déjà été affichée dans une page.

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    C'est quoi WizardPage.Wizard1 ? C'est quoi le type de CurrentPage ?

    A aucun moment je ne te vois utiliser ton DataTemplate. Tu le mets bien dans une propriete de type DataTemplate au moins ? (genre ContentTemplate)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Pardon j'ai oublié un morceau, WizardPage est une enum dans lequel j'ai les noms Wizard1, Wizard2 et Wizard3.

    CurrentPage est du type WizardPage

    La méthode ShowPage() me permet de charger mon DataTemplate dans mon wizard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string resourceKey = CurrentPage.ToString();
    object content = ((DataTemplate)View.Resources[resourceKey]).LoadContent();
    Dialog.Content = content;
    Le chargement de mon DataTemplate fonctionne bien, tout s'affiche et tout fonctionne mis à part l'image, je pense pas que le problème vienne du chargement du DatatTemplate mais plutot du mode de compilation de l'image ou de son intégration dans le code.

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Et LoadContent ca fait quoi ca ?

    Ca sert a rien d'utiliser des DataTemplate et de les utiliser comme des content.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dialog.ContentTemplate = (DataTemplate)View.Resources[resourceKey];
    Les propriétés ContentTemplate sont la pour quelque chose.

    Et pourquoi je te fais faire ca ? Parce que c'est peut-etre pour cette raison que ton image s'affiche des fois et des fois pas.

Discussions similaires

  1. visionner, modifier, compiler des collections d'images
    Par Celano dans le forum Matériel
    Réponses: 4
    Dernier message: 17/01/2012, 18h20
  2. Réponses: 0
    Dernier message: 07/05/2008, 11h31
  3. Afficher des images sous directX
    Par cyberlewis dans le forum DirectX
    Réponses: 17
    Dernier message: 12/07/2004, 12h07
  4. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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