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

Framework .NET Discussion :

[WPF] Problème de style


Sujet :

Framework .NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut [WPF] Problème de style
    Bonjour

    J'ai défini deux style, une que je veux appliquer aux Label et l'autre aux TextBlock

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <Style TargetType="{x:Type TextBlock}">
    	<Setter Property="Foreground" Value="#FFFFFFFF" />
    	<Setter Property="FontSize" Value="12"/>
    	<Setter Property="FontFamily" Value="Arial"/>
    </Style>
     
    <Style TargetType="{x:Type Label}">
    	<Setter Property="Padding" Value="0,5,0,2"/>
    	<Setter Property="FontWeight" Value="Bold"/>
    	<Setter Property="Foreground" Value="#FF999999" />
    	<Setter Property="FontSize" Value="15"/>
    	<Setter Property="FontFamily" Value="Arial"/>
    </Style>
    Mon problème : Les labels prennent l'apparence des TextBlock. Je suppose que c'est normal puisque, si je ne me trompe pas, Label hérite de TextBlock. Mais y a-t-il une solution pour éviter ce problème ? Je pourrais utiliser la propriété Key, mais si je peux éviter cela, ça serait pas mal.


    Question "Bonus" : Est-il possible de souligner le texte d'un label ? J'ai réussi à les mettre en Gras, italique mais pas de soulignement.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye de spécifier la propriété Key comme ceci:

    <Style TargetType="{x:Type Label}" x:Key="{x:Type Label}">

    <Style TargetType="{x:Type TextBlock}" x:Key="{x:Type TextBlock}">

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    Pas d'amélioration

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Etrange: je viens de faire le test et je n'ai pas ce problème: j'arrive à bien appliquer un style différent pour les TextBlocks et les Labels....

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    J'ai refait un test.
    Une fenêtre contenant un Label, un textBlock et un style.

    Et ça fonctionne




    Mais dans mon projet, non

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu n'as pas des styles ou contrôles qui héritent d'autres styles ou contrôles ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    Oui, mais je ne pense pas que ce soit la source du problème.

    Mes styles se trouve dans un resourcesDictionary. J'ai mis tous les styles sauf les deux qui m'intéressent en commentaire. Cela n'a rien changé. Puis j'ai vraiment tout mis en commentaire et j'ai placé mes styles Label et TextBlock comme ressources d'un UserControl contenant des labels et des TextBox et, surprise, ça fonctionne.

    Tu y comprends quelque chose ?

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Là, je comprend pas, désolé.....

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    J'ai peut être fait quelque chose de faux dans mon utilisation des ressources (mais ne verrais pas quoi)

    dans App.xaml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    ...
     
    <Application.Resources>
    	<ResourceDictionary>
    		<ResourceDictionary.MergedDictionaries>
    			<ResourceDictionary Source="Skins\Default\Default.xaml"/>
    		</ResourceDictionary.MergedDictionaries>
    	</ResourceDictionary>
    </Application.Resources>
     
    ...
    dans Skins\Default\Default.xaml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        >
      <ResourceDictionary.MergedDictionaries>
    	  <ResourceDictionary Source="Converters.xaml"/>
    	  <ResourceDictionary Source="Resources\Brushes.xaml"/>
    	  <ResourceDictionary Source="Resources\ListView.xaml"/>
    	  <ResourceDictionary Source="Resources\Controls.xaml"/>
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    Et dans les différents fichier ressources, mes styles, template, ...

    Mes styles Label et TextBlock se trouvent dans le fichier Controls.xaml

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Je vois pas ce qui pourrait clocher

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    Et encore plus étrange, même si j'utilise x:key et que je spécifie le style sur mes label le problème persiste

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    J'ai trouvé

    La solution, mettre le lien vers la ressource dans la fenêtre et pas dans l'application.

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window.Resources>
    	<ResourceDictionary>
    		<ResourceDictionary.MergedDictionaries>
    			<ResourceDictionary Source="Skins\Default\Default.xaml"/>
    		</ResourceDictionary.MergedDictionaries>
    	</ResourceDictionary>
    </Window.Resources>
    et pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Application.Resources>
    	<ResourceDictionary>
    		<ResourceDictionary.MergedDictionaries>
    			<ResourceDictionary Source="Skins\Default\Default.xaml"/>
    		</ResourceDictionary.MergedDictionaries>
    	</ResourceDictionary>
    </Application.Resources>

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

Discussions similaires

  1. WPF : Problème de style
    Par Philenain dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 08/12/2009, 12h52
  2. [WPF] Petits problèmes de style
    Par despeludo dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 06/10/2007, 00h22
  3. Problème de style avec firefox
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/03/2006, 16h17
  4. [VB.NET] Problème tabpage + Style XP
    Par rikidi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/08/2005, 16h01

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