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 :

Binding d'une image sur le background d'un Textblock


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut Binding d'une image sur le background d'un Textblock
    Bonjour à tous,

    Voilà je voulais tout d'abord savoir si celà était possible de mettre une image en background d'un textblock.

    Pour l'instant j'ai ceci pour mes textblock que j'aimerai modifier pour avoir un backGroundImage

    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <Style x:Key="TextBlockStyle" TargetType="{x:Type TextBlock}">
          <Style.Triggers>
                 <DataTrigger Binding="{Binding Path=Tire}" Value="False">
                            <Setter Property="Foreground" Value="Red"></Setter>
                 </DataTrigger>
                 <DataTrigger Binding="{Binding Path=Tire}" Value="True">
                            <Setter Property="Foreground" Value="Yellow"></Setter>
                 </DataTrigger>
          </Style.Triggers>
    </Style>

    J'ai déjà mon Converter pour l'url de l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <conv:ImageConverter x:Key="imgConvert"></conv:ImageConverter>
    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Data;
    using System.Windows.Media.Imaging;
     
    namespace LottoVerification.Converter
    {
        class ImageConverter:IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                string picture = (string)value;
                return new BitmapImage(new Uri(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\LottoVerification\\images\\" + picture));
     
            }
     
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return null;
            }
        }
    }

    Merci pour vos réponses.

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

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

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

    Le controle TextBlock n'accepte que du texte comme contenu (via la propriété du même nom)

    Utilises un Label qui a la propriété Content et qui permet de mettre ce que tu veux dedans

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 171
    Par défaut
    le problème est que je puisse laisser du texte tout en mettant une image en arrière-plan.

    Est ce que celà reste possible avec le label?

    Si c'est possible, comment puis-je faire?
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Par défaut
    Et pourquoi pas un contrôle Image, avec par-dessus ton Textblock sans aucun fond ? (tu peux en faire un UserControl )

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

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par jacquesprogram Voir le message
    Et pourquoi pas un contrôle Image, avec par-dessus ton Textblock sans aucun fond ? (tu peux en faire un UserControl )
    Mouais un peu galère. On fait ça en Winforms mais c'est tellement plus simple de faire ce genre de chose avec WPF.

    En plus un contrôle Image ne reçoit qu'une image comme contenu....

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Citation Envoyé par yonpo
    Citation Envoyé par jacquesprogram
    Et pourquoi pas un contrôle Image, avec par-dessus ton Textblock sans aucun fond ? (tu peux en faire un UserControl )
    Mouais un peu galère. On fait ça en Winforms mais c'est tellement plus simple de faire ce genre de chose avec WPF.

    En plus un contrôle Image ne reçoit qu'une image comme contenu....
    Quelque part ton exemple fais ça. Tu utilises une Image et un TextBlock. Sauf que tu as mis le tout dans un StackPanel, ce qui fait que l'Image et le TextBlock vont s'empiler. L'image ne sera donc pas en background du TextBlock. Mettre tout dans une Grid ferait l'affaire par contre.


    La solution la plus simple consiste quand même à utiliser la propriété Background du TextBlock :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            <TextBlock Text="blabla..." >
              <TextBlock.Background>
                <ImageBrush ImageSource="Images\image1.jpg"  />
              </TextBlock.Background>
            </TextBlock>

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

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par djmic Voir le message
    Est ce que celà reste possible avec le label?
    Oui, puisque tu peux mettre ce que tu souhaite (images, textes, graphiques, tableaux, boutons, ...)

    Citation Envoyé par djmic Voir le message
    Si c'est possible, comment puis-je faire?
    Merci
    Voici un exemple :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Label>
                <StackPanel>
                    <Image Source="Images/MonImages.png"/>
                    <TextBlock Text="Bonjour" />
                </StackPanel>
    </Label>
    Tu peux bien sûr binder ces propriétés

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

Discussions similaires

  1. [JBouton] Comment mettre une image sur un bouton ?
    Par Kyti dans le forum Composants
    Réponses: 6
    Dernier message: 11/03/2005, 16h08
  2. comment Positionner une image sur une autre ?
    Par moumoule17 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/11/2004, 16h41
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 09h55
  4. [VB6] mettre une image sur un boutton
    Par dim dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/02/2004, 01h28

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