none
Graphiques avec Resize RRS feed

  • Question

  • Bonjour.

    Je souhaite dessiner des courbes de températures, constituées d'un grand nombre de lignes et de points, dans une fenêtre WPF mais il faut que ces courbes s'ajustent au mieux à la fenêtre pour exploiter l'espace disponible lors d'un resize de cette fenêtre. J'ai actuellement une application Forms qui fait bien ce travail grâce aux événements Paint et Resize. Je souhaite migrer cette application vers WPF mais je ne trouve plus les événements dont j'ai besoin pour redessiner mes courbes lors d'un resize de ma fenêtre...

    J'ai trouvé des demos avec des resizes mais les objets conservent leurs proportions et c'est - je pense - WPF qui gère la mise à l'échelle; dans mon cas, il faut pouvoir déformer les courbes si l'utilisateur change la taille de la fenêtre seulement suivant un seul axe; WPF peut-il gérer automatiquement ce type de transformation ou dois-je détecter le resize et redessiner le tout comme en Forms ?

    Puis-je avoir un conseil sur la manière générale de travailler en WPF dans le cadre d'une application graphique du genre décris ci-avant ?

    Il s'agit de ma première application WPF.

    Merci d'avance,

    Alain.

    mardi 1 juin 2010 13:07

Réponses

  • Bonjour,

    En WPF contrairement à Windrows Forms, vous ne coloriez pas des pixel (c'est à dire vous passez votre à temps à dessiner). En WPF, vous créer des objets graphiques comme Path, Rectangle,...etc. Et c'est le moteur graphique qui passe son temps à le dessiner.

    Pour le problème de déformation, voici le code à utiliser au niveau de XAML :

    <Viewbox Grid.Row="1" Stretch="Fill">
       <Canvas Height="100" Width="100" Background="Azure">
         <!-- Votre graphique -->     
       </Canvas>
    </Viewbox>

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    mercredi 2 juin 2010 09:21
    Modérateur

Toutes les réponses

  • Bonjour,

    En WPF contrairement à Windrows Forms, vous ne coloriez pas des pixel (c'est à dire vous passez votre à temps à dessiner). En WPF, vous créer des objets graphiques comme Path, Rectangle,...etc. Et c'est le moteur graphique qui passe son temps à le dessiner.

    Pour le problème de déformation, voici le code à utiliser au niveau de XAML :

    <Viewbox Grid.Row="1" Stretch="Fill">
       <Canvas Height="100" Width="100" Background="Azure">
         <!-- Votre graphique -->     
       </Canvas>
    </Viewbox>

    Cordialement


    Gilles TOURREAU - MVP C# - MCP - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    mercredi 2 juin 2010 09:21
    Modérateur
  • Merci Monsieur Tourreau.

    Il est vrai que cette manière de faire est impressionante d'efficacité.

     

    Alain.

     

    mercredi 2 juin 2010 11:13