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 :

[ControlTemplate] Utiliser un EventTrigger pour lancer un autre évènement


Sujet :

Windows Presentation Foundation

  1. #1
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut [ControlTemplate] Utiliser un EventTrigger pour lancer un autre évènement
    Bonjour,

    Je me suis créé un petit Style qui permet de transformer une CheckBox en un bouton rotatif à 3 états.
    Au final, j'obtiens un gros bouton qui tourne, entouré de 2 labels : ON et OFF.
    Pour l'instant, quand je clique n'importe où sur mon contrôle, l'état de ma CheckBox change et j'applique une transformation pour que mon bouton pointe vers le label correspondant à son état : checked => ON, unchecked => OFF.
    J'obtiens ça grâce à ces triggers :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                        <ControlTemplate.Triggers>
                            <EventTrigger RoutedEvent="CheckBox.Checked">
                                <EventTrigger.Actions>
                                    <BeginStoryboard Storyboard="{StaticResource OnMouseClick_GoToOn}" />
                                </EventTrigger.Actions>
                            </EventTrigger>
     
                            <EventTrigger RoutedEvent="CheckBox.Unchecked">
                                <EventTrigger.Actions>
                                    <BeginStoryboard Storyboard="{StaticResource OnMouseClick_GoToOff}" />
                                </EventTrigger.Actions>
                            </EventTrigger>
                        </ControlTemplate.Triggers>

    Ce que j'aimerai faire, c'est que :
    1) quand je clique sur le bouton central, ma CheckBox change d'état et que mon bouton subisse l'animation correspondante
    2) quand je clique sur le Label "ON", ma CheckBox passe à l'état checked et que mon bouton subisse l'animation correspondante
    3) quand je clique sur le Label "OFF", ma CheckBox passe à l'état unchecked et que mon bouton subisse l'animation correspondante

    J'ai déjà réussi à faire en sorte que quand je clique sur mes labels, le bouton subisse la bonne transformation :
    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
     
                        <ControlTemplate.Triggers>
                            <EventTrigger SourceName="offLabel"
                                          RoutedEvent="Label.MouseLeftButtonDown">
                                <EventTrigger.Actions>
                                    <BeginStoryboard Storyboard="{StaticResource OnMouseClick_GoToOff}" />
                                </EventTrigger.Actions>
                            </EventTrigger>
                            <EventTrigger SourceName="onLabel"
                                          RoutedEvent="Label.MouseLeftButtonDown">
                                <EventTrigger.Actions>
                                    <BeginStoryboard Storyboard="{StaticResource OnMouseClick_GoToOn}" />
                                </EventTrigger.Actions>
                            </EventTrigger>
                        </ControlTemplate.Triggers>
    Malheureusement, je ne sais pas comment faire pour lancer un évènement CheckBox.Check ou CheckBox.Uncheck suite à ces clics sur les labels, afin que l'état de ma CheckBox se mette à jour correctement.

    Quelqu'un aurait une idée de la marche à suivre ?

    De plus, je ne sais pas non plus comment lui dire que quand je clique sur le bouton central, je dois lancer un évènement qui correspond à l'inverse de l'état actuel de ma CheckBox : si elle est checked, on lance CheckBox.Uncheck ; si elle est unchecked, on lance CheckBox.Check.

    Merci d'avance !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    tu peux toujours faire un user control ou derriver la classe checkbox pour y mettre du code

Discussions similaires

  1. Peut-on utiliser le cron pour lancer un programme Java ?
    Par _LittleFlea_ dans le forum Général Java
    Réponses: 4
    Dernier message: 29/04/2010, 13h13
  2. Réponses: 3
    Dernier message: 18/11/2009, 11h51
  3. Logiciel pour lancer d'autres logiciels avec paramètres
    Par Fab88 dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 01/04/2009, 15h15
  4. [Système] syntaxe pour lancer un autre programme
    Par mioke dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2008, 12h08
  5. Code pour lancer un autre code
    Par Nessie37 dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/01/2008, 15h11

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