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 :

Propriétés X et Y d'un élément d'affichage.


Sujet :

Silverlight

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut Propriétés X et Y d'un élément d'affichage.
    Salut à tous, je suis en train de tester un peu Silverlight ( visual Studio 2010 express ) et j'ai un problème, je pensais le resoudre en 10min et sa fais depuis hier que je cherche partout comment ( et oui j'y arrive pas^^ ) déplacer un objet (je sais plus le nom mais "affiché"). Sa avait pour moi l'air tout con, j'ai cherché les propriétés X et Y, y en a pas...

    Impossible de savoir comment faire sa, depuis le temps que je cherche, j'ai lu 50 pages pour faire des animations ( du coup ben j'saurai faire^^ ), mais aucun ne disait comment changer directement la position d'un objet.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                var PlayButton = new Rectangle();
                TaskBarre.Children.Add(PlayButton);
                PlayButton.Width = 30;
                PlayButton.Height = 30;
                PlayButton.Fill = ImageBrushPlay;
                /*PlayButton.SetValue(Canvas.LeftProperty, 0);
                PlayButton.SetValue(Canvas.TopProperty, 20);
                */
                PlayButton.MouseLeftButtonDown += new MouseButtonEventHandler(PlayButton_MouseLeftButtonDown);
    Visual Studio 2010
    Silverlight 4

    TaskBarre est un canvas créé dans le xaml, et ImageBrushPlay est généré par le code, pas de sousci de ce coté là, je veux juste pouvoir placer mon rectangle là où il doit aller dans mon canvas (ou par rapport au layout peut importe).

    J'ai trouvé les lignes qui sont en commentaires interessante sur un site je sais plus où, mais sa ne fonctionne pas, si je les décommente, j'ai le cercle avec les points bleus (silverlight qui marche pas^^) dans mon navigateur.


    Donc en Résumé :

    SILVERLIGHT, ou caches-tu les propryété .X et .Y de tes éléments. J'aurai besoin de les get et de les set.

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    Tu as plusieurs façons de positionner un objet :

    Dans un canvas : via la propriété Canvas.Top et Canvas.Left (comme ce que tu as mis en commentaire)

    Dans un panel : la plupart du temps via HorizontalAlignment & VerticalAlignment + Margin | Padding

    Pour les animations : Via la propriété RenderTransform et plus particulierement l'objet TranslateTransform

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Salut, et merci de ta reponse .
    Dans un canvas : via la propriété Canvas.Top et Canvas.Left (comme ce que tu as mis en commentaire)
    Oui c'est ce que j'ai besoin de faire mais sa ne marche pas, voila le resultat.

    Dans un panel : la plupart du temps via HorizontalAlignment & VerticalAlignment + Margin | Padding
    Je debute et je n'ai encore jamais utilisé de "panel", je vais regarder sa. Est-ce que sa se rapproche un peu plus des MovieClip en AS?

    Pour les animations : Via la propriété RenderTransform et plus particulierement l'objet TranslateTransform
    Mais la c'est parreil dans tout les cas il faut que je sache quelle propriétée modifier... je n'ai pas besoin de sa, je cherche juste a positionner mon ptit monde pour le moment.

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Oui c'est ce que j'ai besoin de faire mais sa ne marche pas, voila le resultat.
    C'est pourtant la façon de faire. Il va falloir nous montrer plus de code pour trouver ou ça coince...

    Je debute et je n'ai encore jamais utilisé de "panel", je vais regarder sa. Est-ce que sa se rapproche un peu plus des MovieClip en AS?
    Je ne connais pas très bien Flash mais je ne pense pas que Panel soit le pendant de MovieClip. C'est un objet permettant le positionnement de ses enfants selon des règles qui lui son propre. Un StackPanel va empiler ses enfants les un après les autre alors qu'un Grid les positionnera comme un Tableau.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Dans mon xaml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            <Grid x:Name="LayoutRoot" Background="Black">
            <Rectangle Name="BackGround"/>
            <MediaElement Name="MediaVideo" HorizontalAlignment="Center" VerticalAlignment="Center" />
            <Canvas Name="TaskBarre" Height="50" Width="450" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,5,0,5" OpacityMask="#FF000000" >
     
            </Canvas>
    </Grid>
    Dans mon .cs (la partie interessante, ce n'es pas disposé de cette fasson dans le code, mais sa donne sa) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
               ImageBrush ImageBrushPlay = new ImageBrush();
                Uri PlayButtonImgUrl = new Uri("BoutonPlay.png");
                ImageBrushPlay.ImageSource = new BitmapImage(PlayButtonImgUrl);
     
                Rectangle PlayPauseButton = new Rectangle();
                PlayPauseButton.Fill = ImageBrushPlay;
                PlayPauseButton.Name = "PlayButton";
     
                TaskBarre.Children.Add(PlayPauseButton);
                PlayPauseButton.Width = 80;
                PlayPauseButton.Height = 80;
                PlayPauseButton.SetValue(Canvas.LeftProperty, 0);
                PlayPauseButton.SetValue(Canvas.TopProperty, 20);
    Un StackPanel va empiler ses enfants les un après les autre alors qu'un Grid les positionnera comme un Tableau.
    Oui sa semble s'en approcher beaucoup plus, je n'avais pas cette impression de tableau pour le moment, mais bon sans pouvoir bouger des éléments, c'est difficile de se faire une idée de comment sa marche.

    PS : je n'utilise pas Visual Studio 2010 mais Web studio express 2010, mais je ne pense pas que sa change quoi que ce soit.

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    oky, j'ai compris en regardant l'erreur javascript.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                PlayPauseButton.SetValue(Canvas.LeftProperty, 0);
                PlayPauseButton.SetValue(Canvas.TopProperty, 20);
    Les valeurs que tu passes sont des entiers or il attend un double.
    Ainsi les choses devraient fonctionner correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                PlayPauseButton.SetValue(Canvas.LeftProperty, 0.0);
                PlayPauseButton.SetValue(Canvas.TopProperty, 20.0);

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/04/2015, 18h47
  2. [WPF] appliquer un converter a une propriété des éléments d'une collection
    Par maa dans le forum Windows Presentation Foundation
    Réponses: 17
    Dernier message: 23/01/2008, 21h39
  3. [drag drop] donner des propriétés à un élément ?
    Par Merfolk dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/12/2007, 14h28
  4. Réponses: 3
    Dernier message: 05/10/2007, 13h19
  5. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54

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