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 :

Erreur non bloquante lors du TemplateBinding sur RectangleGeometry


Sujet :

Windows Presentation Foundation

  1. #1
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut Erreur non bloquante lors du TemplateBinding sur RectangleGeometry
    Bonjour.

    J'ai ce code dans un template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <GeometryDrawing.Geometry>
        <GeometryGroup>
            <RectangleGeometry Rect="{Binding Path=Rect, RelativeSource={RelativeSource Mode=TemplatedParent}}" />
        </GeometryGroup>
    </GeometryDrawing.Geometry>
    Et dans mon control :
    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
     
        <ComponentModel.Category("Special")> _
            Public Shared ReadOnly RectProperty As DependencyProperty = _
               DependencyProperty.Register("Rect", _
               GetType(Rect), GetType(CLFWAddButton), _
               New FrameworkPropertyMetadata(New Rect(0, 0, 50, 50)))
        <ComponentModel.Category("Special")> _
        Public Property Rect() As Rect
            Get
                Return GetValue(RectProperty)
            End Get
            Set(ByVal value As Rect)
                SetValue(RectProperty, value)
            End Set
        End Property
    J'ai bien l'init à (0, 0, 50, 50), une modification du Rect du control entraîne bien une modification d'affichage ... et pourtant j'ai une erreur en fénêtre exécution au chargement :
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpressionath=Rect; DataItem=null; target element is 'RectangleGeometry' (HashCode=17654054); target property is 'Rect' (type 'Rect')

    A noter que j'ai le même soucis avec RadiusX ou Y alors que cette erreur n'apparaît pas avec un Rectangle.

    Une idée ?

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    J'ai résolu le probléme (sans le faire exprés !).

    En fait, le TemplateBinding était inclus dans une Image :
    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
    22
    23
    24
     
        <Grid>
            <Grid.Resources>
                <Style TargetType="{x:Type MyNamespace:CLFWAddButton}">
                    <!--Set to true to not get any properties from the themes.-->
                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type MyNamespace:CLFWAddButton}">
                                <Grid>
    <Image Stretch= "Fill">
        <Image.Source>
            <DrawingImage>
                <DrawingImage.Drawing>
                    <DrawingGroup>
                        <GeometryDrawing>
                            <GeometryDrawing.Geometry>
                                <GeometryGroup>
                                    <RectangleGeometry 
                                        Rect="{Binding Path=Rect, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        RadiusX="{Binding Path=RadiusX, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        RadiusY="{Binding Path=RadiusY, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                    />
                                </GeometryGroup>
    En mettant le code au propre et en sortant le RectangleGeometry de l'Image que je place en ressource du grid :
    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
     
    <Grid.Resources>
                <Style TargetType="{x:Type MyNamespace:CLFWAddButton}">
                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                    <Setter Property="Template">
                        <!--Attention les resources dans le setter entraîne le non affichage 
                        en desgin-->
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type MyNamespace:CLFWAddButton}">
                                <Grid>
                                    <Grid.Resources>
                                        <RectangleGeometry x:Key="RBase"
                                        Rect="{Binding Path=Rect, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        RadiusX="{Binding Path=RadiusX, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        RadiusY="{Binding Path=RadiusY, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        />
    Je n'ai plus l'erreur...

    Par contre j'ai bien du mal à me l'expliquer !

    Donc si quelqu'un sait...

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/02/2014, 13h29
  2. Erreur non bloquante
    Par Invité dans le forum C++
    Réponses: 2
    Dernier message: 22/09/2012, 15h30
  3. [JNDI] Erreur non explicite lors de l'ajout d'une entrée dans l'AD
    Par elias dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/07/2011, 21h48
  4. Erreur non connue lors d'import Excel
    Par Fvandermeulen dans le forum Import/Export
    Réponses: 0
    Dernier message: 18/09/2009, 12h17
  5. Erreur : Non implémenté lors de l'appel d'un evenement
    Par pedouille dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/12/2005, 10h15

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