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 :

Peut-on agrandir/rétrécir une image selon un Slider ?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Points : 337
    Points
    337
    Par défaut Peut-on agrandir/rétrécir une image selon un Slider ?
    Bonjour,

    Tout est dans le titre, je souhaite savoir si on peut lier une image à un slider et faire en sorte de l'agrandir/rétrécir selon si on slide à gauche ou à droite ?

    Merci.

  2. #2
    Membre du Club Avatar de Takumi
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 163
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Si tu as un Control Image et deux Silder (un pour la hauteur et un pour la largeur), tu peux binder la propriété Value du Slider à la propriété Width ou Height. Tu peux tenter un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Image Name="MyImage" 
               Width="{Binding ElementName=SliderWidth, Path=Value}" 
               Height="{Binding ElementName=SliderHeight, Path=Value}"></Image>
     
    <Slider Name"SliderWidth"></Slider>
    <Slider Name="Sliderheigth"></Slider>
    Par contre si tu souhaite n'utiliser qu'un seul Slider, on peut par exemple décider qu'il règle la hauteur de l'image seulement, et ensuite tu binde la largeur sur la hauteur de l'image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Image Name="MyImage" 
               Width="{Binding ElementName=SliderWidth, Path=Value}" 
               Height="{Binding Path=Width}"></Image>
     
    <Slider Name"SliderWidth"></Slider>
    Par contre si tu souhaite garder les proportions pour ne pas déformer l'image, il faudrait surement faire quelques petits calcul avant. Tu peux éventuellement passer par un Converter, mais il y a peut être moyen de faire mieux.

    J'ai écrit ça à la volé sans VS, donc je ne dit pas que c'est totalement juste. Mais l'idée est là je pense, j'espère ne pas avoir dit de bêtise.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Points : 337
    Points
    337
    Par défaut
    Merci pour ta réponse Takumi

    Donc j'ai testé ce que tu proposes et ça marche presque ^^ Je vais continuer grâce à ça pour le moment.

    Mais, ce qui se passe quand je déplace le barre sur le slider, l'image du milieu reste inchangée. l'image s'agrandit ou rétrécie(au départ on ne la vois pas surement car la valeur du contrôle slider est à 0, le minimum) mais que très peu.

    J'imagine qu'il faut relier la taille du slider non pas sur les pixels (ça doit être mis comme ça par défaut) mais sur la taille de l'image (en proportion donc).

    je vais chercher de mon côté en attendant.

  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
    Plutôt que de changer la largeur et la hauteur, tu peux utiliser une transformation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Image Source="Images/Image1.jpg" Stretch="None">
            <Image.RenderTransform>
                <ScaleTransform ScaleX="{Binding Value, ElementName=sldZoom}" ScaleY="{Binding Value, ElementName=sldZoom}" />
            </Image.RenderTransform>
        </Image>
        <Slider Name="sldZoom" Grid.Row="1"
                Width="300" Minimum="0.1" Maximum="3" Value="1" />
      </Grid>

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Points : 337
    Points
    337
    Par défaut
    Merci à toi tomlev c'est ce qu'il me fallait ^^

    Encore merci :]


  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par zouuc Voir le message
    Merci pour ta réponse Takumi

    Donc j'ai testé ce que tu proposes et ça marche presque ^^ Je vais continuer grâce à ça pour le moment.

    Mais, ce qui se passe quand je déplace le barre sur le slider, l'image du milieu reste inchangée. l'image s'agrandit ou rétrécie(au départ on ne la vois pas surement car la valeur du contrôle slider est à 0, le minimum) mais que très peu.

    J'imagine qu'il faut relier la taille du slider non pas sur les pixels (ça doit être mis comme ça par défaut) mais sur la taille de l'image (en proportion donc).

    je vais chercher de mon côté en attendant.
    Je pense que la solution de Takumi nécessitait juste quelques propriétés sur les sliders (min, max et value). La solution de la transformation semble quand même la plus pertinente ^^

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

Discussions similaires

  1. Agrandir/Rétrécir une image
    Par Nainpoleon dans le forum Tkinter
    Réponses: 15
    Dernier message: 14/02/2013, 21h17
  2. Animation : Agrandir puis rétrécir une image.
    Par JohnMalko dans le forum Powerpoint
    Réponses: 1
    Dernier message: 02/07/2011, 19h48
  3. Réponses: 13
    Dernier message: 09/07/2006, 15h53
  4. Zommer une image selon une echelle donnée
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/06/2006, 18h05
  5. [HTML][CSS] Redimensionner une image selon condition
    Par Eilkh dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/02/2006, 15h55

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