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

C# Discussion :

Modifier la source d'une image dans un ControlTemplate


Sujet :

C#

  1. #1
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 508
    Points : 364
    Points
    364
    Par défaut Modifier la source d'une image dans un ControlTemplate
    Bonjour,
    J'essaie de modifier la source d'une image dans un ControlTemplate.
    J'ai un Xaml comprent ce ControleTemplate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ControlTemplate x:Key="NewPinsNoLocTemplate" TargetType="m:Pushpin">
                <Grid x:Name="ContentGridNewPinsNoLocTemplate" Width="42" Height="48" Margin="0">
                    <Image x:Name="NewPinsLocTemplateLeft" Source="../Image/Map/map_puce_unknown.png" Stretch="Fill">
     
                    </Image>
                </Grid>
            </ControlTemplate>
    Je le récupere dans un classe non liée au Xaml comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ControlTemplate ctrl = pins.Resources["NewPinsNoLocTemplate"] as ControlTemplate;
     
    list_pins_assets[i].Template = ctrl;
    Je souhaite modifier la source de l'image NewPinsLocTemplateLeft a la volée pour list_pins_assets[i] mais je ne sais pas comment faire

    Quelqu'un a t'il une solution ?
    Merci d'avance

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Ce n'est pas toi qui développe ce template ?

    A ma connaissance rien de plug-and-play, il va te falloir obtenir le XAML du template et le modifier via un simple String.Replace et regénérer une instance du nouveau ControlTemplate que tu pourras utiliser comme template de ton control.

  3. #3
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    Si tu connais le binding tu bind la source de ton image à une propriété ensuite suffit juste de modifier cette propriété et la source est mis à jour automatiquement (il faut quand même que ta propriété soit une DependencyProperty ou que ta classe implémente l'interface INotifyPropertyChanged).
    Si tu connais pas je t'invite à consulter les tutos, il y en a un pas mal sur ce site.

  4. #4
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 508
    Points : 364
    Points
    364
    Par défaut
    J'ai résolu le problème comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     WriteableBitmap wbmap               = ColorService.colorizePicture("../../Image/Map/map_puce_unknown.png");
                    NewPinsNoLocTemplate                = pins.Resources["NewPinsNoLocTemplate"] as ControlTemplate;
                    var image = new FrameworkElementFactory(typeof(Image));
                    image.SetValue(Image.SourceProperty, wbmap);
                    NewPinsNoLocTemplate.VisualTree     = image;

  5. #5
    Membre averti Avatar de Fooshi
    Homme Profil pro
    ICD
    Inscrit en
    Juin 2002
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ICD
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 508
    Points : 364
    Points
    364
    Par défaut
    Pragmateek : Comment faire un string.replace pour remplacer un string qui doit etre changé par un WriteableBitmap généré ?

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

Discussions similaires

  1. [AC-2007] Source d'une image dans un formulaire continu
    Par vandrie dans le forum IHM
    Réponses: 3
    Dernier message: 16/05/2011, 17h59
  2. modifier la position d'une image dans une galerie
    Par VIRGINIE87 dans le forum Langage
    Réponses: 8
    Dernier message: 17/02/2010, 23h53
  3. Réponses: 4
    Dernier message: 24/09/2008, 17h13
  4. Changer la source d'une image dans un panel
    Par Thomus38 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/12/2007, 21h31
  5. Modifier la source d'une image
    Par Slide dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 12/07/2007, 16h09

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