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 :

Probleme d'importation d'une image SVG dans une ResourceDictionary


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Points : 121
    Points
    121
    Par défaut Probleme d'importation d'une image SVG dans une ResourceDictionary
    Bonjour,
    Quand j'importe l'Australie sous ce format j'obtiens une image vraiment pas bonne :

    Code XML : 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
    <?xml version="1.0" encoding="utf-8"?>
    <ResourceDictionary  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vu="clr-namespace:Cow.Vue">
        <DrawingImage x:Key="Carte">
            <DrawingImage.Drawing>
                <DrawingGroup>
                    <GeometryDrawing x:Name="EAU" Brush="Cyan">
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect = "0,0,1330,1200"/>
                        </GeometryDrawing.Geometry>
                    </GeometryDrawing>
                    <GeometryDrawing x:Name="AUS" Brush="Red" Geometry="F1 M 142.885,366.542L141.722,366.009 140.695,365.629 140.438,365.609 140.174,365.731… z" >
                        <GeometryDrawing.Pen>
                            <Pen Thickness="1" Brush="Black" />
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                </DrawingGroup>
            </DrawingImage.Drawing>
        </DrawingImage>
    </ResourceDictionary>

    Nom : Aus1.png
Affichages : 199
Taille : 25,1 Ko

    Par contre si je fais cela directement dans mon xaml, mon image est impeccable :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                    <Grid Background="Transparent" >
                        <!--<Image x:Name="Im_Carte" Source="{DynamicResource Carte}" />-->
                        <Canvas Background="Cyan" Height="1330" Width="1200" >
                            <Path Fill="Red" Stroke="Black" StrokeThickness="0.25" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeDashCap="Round" StrokeLineJoin="Round" StrokeMiterLimit="4">
                                <Path.Data>
                                    <PathGeometry FillRule="Nonzero" Figures="M142.885,366.542L141.722,366.009 140.695,365.629 140.438,365.609 140.174,365.731... z" />
                                </Path.Data>
                            </Path>
                        </Canvas>
                    </Grid>

    Nom : Aus2.png
Affichages : 179
Taille : 15,8 Ko

    Question : Comment insérer un path dans un ResourceDictionary pour avoir une image impeccable ?
    Merci pour votre aide

    PS : j'ai copié juste le début des coordonnées pour alléger le message.

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    Toujours est-il que le code poste est incomplet ?
    Dans quel conteneur (control ) places-tu les geometries créée en xaml ?
    si c'est un Control Image ,il faut "envelopper" celui-ci dans un Border ou un ContentControl comme le suggère cet exemple de l'aide MSDN :


    Code XAML : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Border BorderBrush="Gray" BorderThickness="1" 
                    HorizontalAlignment="Left" VerticalAlignment="Top"
                    Margin="10">
                <Image Stretch="None" HorizontalAlignment="Left">
                    <Image.Source>
                        <DrawingImage >
                            <DrawingImage.Drawing>
                                <GeometryDrawing>
                                    <GeometryDrawing.Geometry>
                                        <!-- Create a composite shape. -->
                                        <GeometryGroup>
                                            <EllipseGeometry Center="50,50" RadiusX="45" RadiusY="20" />
                                            <EllipseGeometry Center="50,50" RadiusX="20" RadiusY="45" />
                                        </GeometryGroup>
                                    </GeometryDrawing.Geometry>
                                    <GeometryDrawing.Brush>
                                        <!-- Paint the drawing with a gradient. -->
                                        <LinearGradientBrush>
                                            <GradientStop Offset="0.0" Color="Blue" />
                                            <GradientStop Offset="1.0" Color="#CCCCFF" />
                                        </LinearGradientBrush>
                                    </GeometryDrawing.Brush>
                                    <GeometryDrawing.Pen>
                                        <!-- Outline the drawing with a solid color. -->
                                        <Pen Thickness="10" Brush="Black" />
                                    </GeometryDrawing.Pen>
                                </GeometryDrawing>
                            </DrawingImage.Drawing>
                        </DrawingImage>
                    </Image.Source>
                </Image>
            </Border>
     
     
        </Grid>
    </Window>
    ca devrait rouler comme une bille de billard !!!
    bon code ...

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Points : 121
    Points
    121
    Par défaut
    Bonjour Mabrouki,
    Désolé de répondre si tard. J'ai trouvé mon erreur.
    Au lieu de <Pen Thickness="1" Brush="Black" /> dans le premier code, il fallait mettre <Pen Thickness="0.25" Brush="Black" />.

    Encore merci pour ton aide.

    A Bientôt

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    rebonjour
    En utilisant un control image tu va emplir ,dans l'exemple d'UN CONTINENT contenant 30 à 20 pays ,celui-ci de 20 à 30 controls Image.
    Ce qui va impacter la performance de l'appli.
    Microsoft recommande dans ce cas Un visual Drawing custom
    lien
    https://docs.microsoft.com/en-us/dot...visual-objects

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2014, 20h17
  2. Ajout d'une image SVG dans le code d'une page
    Par Mobius dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2009, 16h37
  3. [c#] [SVG] affichage d'une image svg dans un form (pocket pc)
    Par DontNet dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/10/2007, 15h19
  4. problem d'insertion d'une image dans BD Mysql
    Par taouja dans le forum JDBC
    Réponses: 8
    Dernier message: 26/04/2007, 18h53
  5. Probleme d'affichage d'une image dans un script cgi
    Par Jim_Nastiq dans le forum Web
    Réponses: 3
    Dernier message: 25/04/2006, 16h49

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