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 :

DependencyProperty LinearGradientBrush.GradientStops toujours avec IsFrozen true


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut DependencyProperty LinearGradientBrush.GradientStops toujours avec IsFrozen true
    Bonjour.

    Pour la réalisation d'un contrôle personnalisé, j'ai en premier lieu créer une class abstraite. Celle-ci contient une DependencyProperty comme suivit :

    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
    public static DependencyProperty DegradedBackgroundProperty = DependencyProperty.Register(
        "DegradedBackground", typeof(LinearGradientBrush), typeof(ColorComponent), new PropertyMetadata(new LinearGradientBrush()
        {
            StartPoint = new Point(0, 0),
            EndPoint = new Point(1, 0),
            GradientStops = new GradientStopCollection()
            { 
                new GradientStop(Colors.Black, 0),
                new GradientStop(Colors.White, 1),
            },
        }));
    public LinearGradientBrush DegradedBackground
    {
        get { return (LinearGradientBrush)GetValue(DegradedBackgroundProperty); }
        protected set { SetValue(DegradedBackgroundProperty, value); }
    }
    La valeur par défaut est bien celle écrite pour les contrôle qui en hérite.

    Le problème est que ces derniers ont tous nécessités de redéfinir les deux valeur GardientStop de la collection mais ne peuvent y avoir accé. Le compilateur me sort comme erreur que GradientStops possède la propriété IsFrozen a true.

    J'ai de plus une seconde petite question :
    Comment se nomme le procédé de définir les propriété d'une nouvelle instance comme suivit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    GradientStops = new GradientStopCollection()
    { 
        new GradientStop(Colors.Black, 0),
        new GradientStop(Colors.White, 1),
    }
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    Bon j'ai résolu mon problème en coupant la propriété en deux

    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
    public static DependencyProperty MinimumProperty = DependencyProperty.Register(
        "Minimum", typeof(Color), typeof(ColorComponent), new PropertyMetadata(Colors.Black));
    public Color Minimum
    {
        get { return (Color)GetValue(MinimumProperty); }
        protected set { SetValue(MinimumProperty, value); }
    }
     
    public static DependencyProperty MaximumProperty = DependencyProperty.Register(
        "Maximum", typeof(Color), typeof(ColorComponent), new PropertyMetadata(Colors.White));
    public Color Maximum
    {
        get { return (Color)GetValue(MaximumProperty); }
        protected set { SetValue(MaximumProperty, value); }
    }
    Comme ça je ne suis plus embêté.
    StartPoint et EndPoint du LinearGradientBrush sont gérées côté XAML sur un Trigger.

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

Discussions similaires

  1. Line count dans un JTextArea avec setLineWrap(true)
    Par BibiGmi dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 07/05/2013, 19h49
  2. Problème avec setundecorated(true)
    Par nico_somb dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 27/09/2006, 02h44
  3. [WinForms]toujour avec les api's
    Par aymane_farissi dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 13/08/2006, 01h49
  4. [ACCESS] Syntaxe SQL dans un TQuery avec Requestlive=True
    Par Unusual_FL dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2005, 10h51
  5. Curses - Toujours avec la souris
    Par Caine dans le forum Linux
    Réponses: 7
    Dernier message: 05/01/2005, 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