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 :

Problème avec des Ressources


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 59
    Points
    59
    Par défaut Problème avec des Ressources
    Bonjour à tous,
    voilà je viens de tomber sur un problème que je n'explique pas, dans un ResourceDictionnary j'ai un Template pour un CustomControl, dans ce Template je fais appel à une Resource:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <local2:ButtonToolBar Header="{Binding Path=Text}" Command="{Binding}" >
                        <local2:ButtonToolBar.Template>
                            <ControlTemplate>
                                <Border ToolTip="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Header}" CornerRadius="{StaticResource CornerRadius1}" x:Name="border">
    ...
                                 </Border>
                             </ControlTemplate>
                         </local2:ButtonToolBar.Template>
                    </local2:ButtonToolBar>
    Cette Resource est bien définie plus haut dans le dictionnaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CornerRadius x:Key="CornerRadius1">6,6,6,6</CornerRadius>
    Lorsque j'exécute, je n'ai pas d'erreur de compilation mais mon visuel n'est pas du tout comme il devrait être......
    Pour vérifier j'ai remplacé l'appel à ma Resource par sa valeur et là, magie, cela fonctionne.....

    Autre point semblable qui me donne des migraines, dans ce même dictionnaire de ressources, j'ai un autre CustomControl auquel j'essaye d'appliquer un style:
    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
    <Style x:Key="toto" TargetType="{x:Type local2:CustomToolBar}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type local2:CustomToolBar}" >
                        <GroupBox Header="{TemplateBinding Header}" VerticalAlignment="Center" BorderThickness="0.75,0.75,0.75,0.75" FontFamily="Arial" FontSize="12" Foreground="#FF000000" Style="{DynamicResource GroupBoxStyle}" Background="{DynamicResource BrushDegrade}">
                            <GroupBox.BorderBrush>
                                <SolidColorBrush Color="Red"/>
                            </GroupBox.BorderBrush>
                            <StackPanel IsItemsHost="True" Width="Auto" Height="Auto" VerticalAlignment="Center" Orientation="Horizontal"/>
                        </GroupBox>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    
        <Style x:Key="GroupBoxStyle" TargetType="{x:Type GroupBox}">
            <Setter Property="BorderBrush" Value="#FFAFAEAC"/>
            <Setter Property="BorderThickness" Value="0.5,0.5,0.5,0.5"/>
        </Style>
    <local2:CustomToolBar Style="{StaticResource toto}" Header="{Binding Path=Text}" ItemsSource="{Binding}"/>
    Et cela ne marche que si, à la création de mon CustomControl, je n'ajoute pas cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomToolBar), new FrameworkPropertyMetadata(typeof(CustomToolBar)));
    Pour les deux cas que j'expose il est tout à fait possible de passer outre ces problèmes mais le problème est le même avec les couleurs et comme mon appli doit permettre de changer de Skin et d'en ajouter de nouveaux, je suis obligé d'utiliser des ressources.
    Si quelqu'un a une idée pour tout ça......

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ludogoal Voir le message
    Et cela ne marche que si, à la création de mon CustomControl, je n'ajoute pas cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomToolBar), new FrameworkPropertyMetadata(typeof(CustomToolBar)));
    Bizarre car normalement, c'est cette ligne qui permet d'indiquer qu'on veut un style personnalisé pour le controle...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 59
    Points
    59
    Par défaut
    Oui, d'ailleurs en mettant cette ligne en commentaire j'applique le style au style par défaut du control que je dérive, en l'occurence une ToolBar, ce qui ne donne pas exactement le rendu visuel souhaité mais au moins le style est appliqué.
    Une idée pour les resources qui ne fonctionnent pas? Parce que là pour mes Skins je vais pas m'en sortir sinon...

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par ludogoal Voir le message
    Et cela ne marche que si, à la création de mon CustomControl, je n'ajoute pas cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomToolBar), new FrameworkPropertyMetadata(typeof(CustomToolBar)));
    Comment inclus tu ton ResourceDictionary dans ton projet ? Il est dans themes/generic.xaml ? Dans un autres ResourceDictionary qui est ensuite mergé dans le generic.xaml ?

    Je pose ces questions car j'ai eus une fois un soucis à cause de ça

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 59
    Points
    59
    Par défaut
    J'utilise la deuxième solution, est-ce ce qui cause le problème? et si possible pourquoi?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Il faut qu'il soit dans themes/generic.xaml pour qu'il puisse être reconnu

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 59
    Points
    59
    Par défaut
    Même si dans themes/generic.xaml je fais un merge dictionnaries pour l'ajouter?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Non, pas besoin

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 59
    Points
    59
    Par défaut
    Ok,
    du coups qu'est-ce qui pourrai faire que ça ne marche pas?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Bah, si tu as bien mis le code dans themes/generic.xaml (et que ce fichier est marqué comme étant une ressource dans les propriétés) et que tu as mis la ligne DefaultStyleKeyProperty, tout devrait marcher

  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    Je pense que le problème que j'ai évoqué ICI est un peu similaire.

    Pour que tu puisses utiliser ton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CornerRadius x:Key="CornerRadius1">6,6,6,6</CornerRadius>
    il faudrait peut être qu'il soit dans les resources de ton CustomToolBar.

Discussions similaires

  1. Problème avec des ressources en chinois
    Par jcloupgarou dans le forum Visual C++
    Réponses: 2
    Dernier message: 23/01/2013, 12h42
  2. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 12h17
  3. Réponses: 5
    Dernier message: 19/08/2004, 12h11
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 14h49
  5. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 17h26

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