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 :

[Trigger] et couleur


Sujet :

Windows Presentation Foundation

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    1 453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 453
    Points : 1 278
    Points
    1 278
    Par défaut [Trigger] et couleur
    bonjour,
    je viens de rencontrer un truc étonnant
    par exemple j'ai ce style pour mes boutons
    Code XAML : 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
    25
    26
    27
    28
    29
    30
    31
    32
     <Style TargetType="{x:Type Button}">
                <Setter Property="Background"
                        Value="Transparent" />
                <Setter Property="Foreground"
                        Value="Black" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border Background="{TemplateBinding Background}">
                                <ContentPresenter Content="{TemplateBinding Content}"
                                                  HorizontalAlignment="Center"
                                                  VerticalAlignment="Center"
                                                  TextBlock.FontSize="18" />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver"
                                         Value="True">
                                    <Setter Property="Background"
                                            Value="#E59400" />
                                </Trigger>
                                <Trigger Property="IsPressed"
                                         Value="True">
                                    <Setter Property="Background"
                                            Value="Black" />
                                    <Setter Property="Foreground"
                                            Value="White" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

    que je met dans window.resource

    donc si je met un bouton

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <Button Content="Button"
                    HorizontalAlignment="Left"                
                    Height="131"
                    Margin="237,137,0,0"
                    VerticalAlignment="Top"
                    Width="177" />

    tout roule
    mais si dans celui ci je définis la dp Background, le trigger fonctionne plus
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <Button Content="Button"
                    HorizontalAlignment="Left"
                    Background="red"
                    Height="131"
                    Margin="237,137,0,0"
                    VerticalAlignment="Top"
                    Width="177" />

    en fait j'arrive pas trop à comprendre pourquoi
    si vous avez une idée (surtout pour contourner ce problème)
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    1 453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 453
    Points : 1 278
    Points
    1 278
    Par défaut
    bon j'ai trouvé deux solutions mais je trouve ca pas trop élégant

    1ere solution changer le style pour chaque bouton
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <Button Content="Button"
                    HorizontalAlignment="Left"
                    Height="131"
                    Margin="357,137,0,0"
                    VerticalAlignment="Top"
                    Width="177">
                <Button.Style>
                    <Style TargetType="Button"
                           BasedOn="{StaticResource {x:Type Button}}">
                        <Setter Property="Background"
                                Value="Green" />
                    </Style>
                </Button.Style>
            </Button>

    2eme solution utiliser le border brush pour avoir une couleur en plus
    Code XAML : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <Style TargetType="{x:Type Button}">
                <Setter Property="Background"
                        Value="Transparent" />
                <Setter Property="BorderBrush"
                        Value="Transparent" />
                <Setter Property="Foreground"
                        Value="Black" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border Background="{TemplateBinding Background}">
                                <Border Background="Transparent"
                                             x:Name="bt">
                                    <ContentPresenter Content="{TemplateBinding Content}"
                                                      HorizontalAlignment="Center"
                                                      VerticalAlignment="Center"
                                                      TextBlock.FontSize="18" />
                                </Border>
                            </Border>
                            <ControlTemplate.Triggers>
                                <!--<Trigger Property="IsMouseOver"
                                         Value="True">
                                    <Setter Property="BorderBrush"
                                            Value="#E59400" />
                                </Trigger>-->
                                <Trigger Property="IsPressed"
                                         Value="True">
                                    <Setter Property="Background"
                                            TargetName="bt"
                                            Value="Black" />
                                    <Setter Property="Foreground"
                                            Value="White" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Couleur d'une JComboBox disabled
    Par ced dans le forum Composants
    Réponses: 6
    Dernier message: 06/01/2004, 15h33
  3. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15
  4. Mixage de Couleurs
    Par exxos dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 29/05/2002, 13h34
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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