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 :

Creer un PATH en C#


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut Creer un PATH en C#
    Bonjour,

    J'ai crée une animation générique sur un objet de type Rectangle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Rectangle myRectangle = new Rectangle();
                myRectangle.Name = flowerName;
                myRectangle.Width = 10;
                myRectangle.Height = 10;
     
                SolidColorBrush myBrush = new SolidColorBrush(Colors.Purple);
                myRectangle.Fill = myBrush;
                .....

    Cependant j'aimerais remplacer ce Rectangle (UIElement.Shapes.Rectangle) par une image crée sous Expression Design.

    L'exportation de cette image en xaml me donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Path x:Name="Path" Stretch="Fill" Data="F1 M 287.287,451.884C 287.767,452.734 299.287,478.551 316.667,489.333C 316.667,489.333 424.842,543.107 531.954,483.218C 531.954,483.218 547.333,470.667 554,445.333C 554,445.333 555.811,369.589 562.889,166.555L 566.889,133.222L 568.667,130.667C 568.667,130.667 565,145.667 514.667,154.333C 514.667,154.333 449.667,165.667 386,162C 386,162 345.333,161 306.667,153C 306.667,153 262.333,144 261,130L 266.889,166.555C 266.889,166.555 272.255,270.922 287.287,451.884 Z " Margin="230.926,0,0,60.957" Width="58.258" Height="72.243" HorizontalAlignment="Left" VerticalAlignment="Bottom">
    Comment faire pour recrée l'image via le Path et la proriété DATA en c# ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Path myPath = new Path();
    myPath.Data = F1 M 287.287,451.884C 287.767,452.734 299.287,478.551 316.667,489.333C 316.667,489.333....

    n'existe pas

    Merci de votre aide !

  2. #2
    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
    Je sais pas pour ton exemple, mais voici l'exemple msdn qui devrait pas mal t'aiguiller sur comment faire un path depuis le code c# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    myPath = new Path();
    myPath.Stroke = Brushes.Black;
    myPath.Fill = Brushes.MediumSlateBlue;
    myPath.StrokeThickness = 4;
    myPath.HorizontalAlignment = HorizontalAlignment.Left;
    myPath.VerticalAlignment = VerticalAlignment.Center;
    EllipseGeometry myEllipseGeometry = new EllipseGeometry();
    myEllipseGeometry.Center = new Point(50,50);
    myEllipseGeometry.RadiusX = 25;
    myEllipseGeometry.RadiusY = 25;
    myPath.Data = myEllipseGeometry;
    myGrid.Children.Add(myPath);

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    Merci Binoo, je vais tester ca demain, je vous tiens au courant

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    J'ai regardé et je n'ai pas trouvé comment utiliser directement la valeur DATA du path XAML lors de la création du PATH en c#

    Sur msdn ils font ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Path Stroke="Black" StrokeThickness="1"  
      Data="M 10,50 L 200,70" />
    En c# (Ce que je souhaite)

    Code : 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
    PathFigure myPathFigure = new PathFigure();
    myPathFigure.StartPoint = new Point(10, 50);
     
    LineSegment myLineSegment = new LineSegment();
    myLineSegment.Point = new Point(200, 70);
     
    PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
    myPathSegmentCollection.Add(myLineSegment);
     
    myPathFigure.Segments = myPathSegmentCollection;
     
    PathFigureCollection myPathFigureCollection = new PathFigureCollection();
    myPathFigureCollection.Add(myPathFigure);
     
    PathGeometry myPathGeometry = new PathGeometry();
    myPathGeometry.Figures = myPathFigureCollection;
     
    Path myPath = new Path();
    myPath.Stroke = Brushes.Black;
    myPath.StrokeThickness = 1;
    myPath.Data = myPathGeometry;
    N'y a t-il pas moyen d'utiliser directement le DATA (Data="F1 M 287.287,451.884C 287.767,452.734 ....) via une fonction ou autre pour générer ma forme via c# car si je dois recreer toutes les lignes, points, courbes de besiers, etc... je ne suis pas sortie d'affaire ?

    Merci

  5. #5
    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
    Je ne crois pas que tu puisses éviter ce mécanisme... si tu veux le faire en C# (à confirmer )
    En fait la question est pourquoi souhaites-tu à tout pris le faire en C# ?

    Une possibilité est de récupérer ton Path définit dans ton XAML via le code C# par son nom (dans l'exemple ci-dessous MonPath)...
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    <Path x:Name="MonPath" Stroke="Black" StrokeThickness="1" Data="M 10,50 L 200,70" />

    Je ne vois pas trop ce que tu veux faire en fait

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Par défaut
    En effet, j'aurai du commencer par dire ce que je souhetais faire

    Mon objectif est que lorsque je clic sur un bouton une image apparait aléatoirement dans ma fenetre. Si je clique 10 000x, je dois avoir 10 000 images. A chaque evenement, je crée mon objet avec ces propriétés, son animation etc... C'est pour cela que je ne l'ecris pas en xaml !

    J'ai reussi à faire tout cela avec des rectangles étant donné que cet objet fait partie de la bibliothèque Shapes. Mais comment faire pour que mon rectangle devienne un path ? ...

    Merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/02/2010, 11h17
  2. Réponses: 12
    Dernier message: 18/07/2008, 16h41
  3. comment creer un alias dynamique avec BDE et ODBC
    Par david33 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2002, 11h50
  4. Réponses: 19
    Dernier message: 24/05/2002, 16h36
  5. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33

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