Problème de binding

Résolu/Fermé
l.mnu Messages postés 36 Date d'inscription mercredi 20 février 2019 Statut Membre Dernière intervention 13 mars 2022 - Modifié le 8 mars 2019 à 13:03
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 8 mars 2019 à 17:22
Bonjour,

Quand je mets ce ResourceDictionary dans la même page que l'image, mon binding fonctionne

       
 <ResourceDictionary  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
            <DrawingImage x:Key="MyImage">
                    <DrawingImage.Drawing>
                        <DrawingGroup>
                        <GeometryDrawing <bold>Brush="{Binding Fond}"</bold> Geometry="M 0,0L 32,0L 32,32L 0,32L 0,0 Z " />
                            <GeometryDrawing.Pen>
                                <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFFFFFFF"/>
                            </GeometryDrawing.Pen>
....


Quand je mets ce ResourceDictionary dans un fichier xaml en ressource, mon bindind ne fonctionne pas

<ResourceDictionary  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:Zoom_svg">
    <DrawingImage x:Key="Essai">
        <DrawingImage.Drawing>
            <DrawingGroup>
                <GeometryDrawing <bold>Brush="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type vm:MainWindow}}, Path=DataContext.Fond}"</bold> Geometry="M 0,0L 32,0L 32,32L 0,32L 0,0 Z " />
                    <GeometryDrawing.Pen>
                        <Pen Thickness="1.33333" LineJoin="Round" Brush="#FFFFFFFF"/>
                    </GeometryDrawing.Pen>
...


Dans le fichier de sortie il y a ce message d'erreur :


System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Zoom_svg.MainWindow', AncestorLevel='1''. BindingExpression:Path=DataContext.Fond; DataItem=null; target element is 'GeometryDrawing' (HashCode=53180767); target property is 'Brush' (type 'Brush')


Quelqu'un aurai une idée pour m'aider

Merci


Configuration: Windows / Firefox 65.0

2 réponses

l.mnu Messages postés 36 Date d'inscription mercredi 20 février 2019 Statut Membre Dernière intervention 13 mars 2022
8 mars 2019 à 16:10
J'ai trouvé, j'avais mis le code ci-dessous dans le fichier App.xaml et je l'ai déplacé dans les ressources de ma fenêtre ou j'affiche l'image et maintenant le binding fonctionne


<ResourceDictionary x:Name="Fond1">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Name="Essai" Source="Carte_monde.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>


J'ai perdu au moins une demi-journée à chercher, grrrrrrrrrr mais je suis contente le résultat est là :-)
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
8 mars 2019 à 17:22
Bonjour

merci d'avoir partagé ta solution.
Tu peux marquer le sujet résolu, en cliquant sur la roue dentée, tout en haut de la discussion
0