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 :

Wpf Style [Débutant]


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut Wpf Style
    Petite question sur les styles
    dans mon dictionnaire j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}">
    </Style>
    Donc le nom du Style est TextBoxStyle défini via la Key ?
    Ce style s'applique à toutes mes TextBox

    Mais que se passe style si j'ai plusieurs style sur le même TargetType?

    J'ai voulu définir un deuxième style sur mes TextBox et donc je n'ai pas defini le targetType (vu que je veux que se soit le premier qui soit utiliser par defaut) mais quand je veux l'utiliser en dynamique j'obtient
    Cannot convert the value in attribute 'Style' to object of type 'System.Windows.Style'. Can only base on a Style with target type that is base type 'IFrameworkInputElement'. Error at object 'System.Windows.Controls.CheckBox'
    comme message d'erreur.
    Si je defini le TargetType ca marche mais résultat je ne sais pas quel style sera appliquer par défaut.
    J'ai loupé un truc?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Tu dois forcément renseigner le TargetType d'un Style.

    Si tu as plusieurs style sur le même TargetType, celui appliqué par défaut sera celui qui n'a pas de Key spécifiée.

    Tu peux également faire de l'héritage de Style avec la propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     BasedOn="{StaticResource NomKey}"
    Et donc pour les contrôles auquel tu veux appliquer un autre style que celui par défaut, il faut sur ton contrôle faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Style="{StaticResource NomKey}"
    Et si tes contrôles sont crées dynamiquement en Code Behind, tu peux passer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    style = TryCast(controle.TryFindResource("nomKey"), Style)
                    If style IsNot Nothing Then controle.Style = style

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    Ah oki
    merci à toi

    et j'ai trouvé ca comme conseil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Style TargetType="{x:Type TextBox}" x:Key="BaseTextBoxStyle">
    <Setter Property="Foreground" Value="Red" />
    </Style>
    <!-- Style applies to all TextBoxes -->
    <Style TargetType="{x:Type TextBox}"
       BasedOn="{StaticResource myTextBoxStyle}" />

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Cette méthode permet d'être sûr à 100% que le style de base sera appliqué à tous les contrôles du type ciblé, et donc on peut le considérer comme le style par défaut.

    Par contre, pour les contrôles du même type avec un style différent, c'est à toi de venir l'appliquer à la main à chaque contrôle

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

Discussions similaires

  1. WPF style par defaut ListView avec GridView dans generic.xaml
    Par Nikita0511 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 17/09/2013, 17h46
  2. WPF - Styles & Ressources
    Par hanubis37 dans le forum C#
    Réponses: 2
    Dernier message: 05/06/2013, 18h38
  3. [C#] WPF, Style, Trigger, Binding
    Par dummygreg dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 16/12/2010, 17h51
  4. [WPF] Style TabControl
    Par NeoKript dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 05/06/2010, 16h48
  5. [WPF] Style et snon utilisation dans differents fichiers
    Par escafr dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 10/02/2010, 09h48

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