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 :

[Grid Triggers] une petite erreur


Sujet :

Windows Presentation Foundation

  1. #1
    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 [Grid Triggers] une petite erreur
    bonjour j'ai le code suivant
    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
     
    <Grid Height="30" Margin="0,17,168,0" VerticalAlignment="Top" HorizontalAlignment="Right" Width="30" x:Name="gReduce">
                <Grid.Triggers>
                    <EventTrigger RoutedEvent="Mouse.MouseEnter">
                        <EventTrigger.Actions>
                            <Setter TargetName="el0" Property="Fill" Value="Red"/>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Grid.Triggers>
    			<Ellipse Fill="{DynamicResource InvertFond}" Margin="0,0,0,0" />
    			<Ellipse Margin="3,3,3,3" x:Name="el0">
    				<Ellipse.Fill>
    					<RadialGradientBrush GradientOrigin="0.255,0.295">
    						<GradientStop Color="#FF0B125B" Offset="0.991"/>
    						<GradientStop Color="#FFCDD3FB" Offset="0.004"/>
    					</RadialGradientBrush>
    				</Ellipse.Fill>
    			</Ellipse>
      			<Path Stretch="Fill" Stroke="#FFFFFFFF" StrokeThickness="3" HorizontalAlignment="Right" Margin="0,17.415,8.162,0" VerticalAlignment="Top"  Data="M2.7620912,29.78025 L34.437499,29.781728" Height="3" Width="13.423"/>
    		</Grid>
    je ne comprend pas vraiment pourquoi il me colle une erreur sur le code qualifiant du fill ????

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Tu as essayé de mettre :
    "Ellipse.Fill"

  3. #3
    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
    avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Grid.Triggers>
                    <EventTrigger RoutedEvent="Mouse.MouseEnter">
                        <EventTrigger.Actions>
                            <Setter TargetName="el0" Property="Ellipse.Fill" Value="Red"/>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Grid.Triggers>
    j'ai l'erreur suivante
    Impossible d'ajouter un contenu de type 'System.Windows.Setter' à un objet de type 'System.Windows.TriggerActionCollection'. Erreur à l'objet 'System.Windows.Setter' dans le fichier de balisage 'POP3_Alarm;component/window1.xaml' ligne 95 position 74.
    a la compile j'avais aussi
    Erreur 1 La méthode spécifiée n'est pas prise en charge. D:\@Visual Studio Projects VISTA\@TEST\POP3 Alarm\POP3 Alarm\Window1.xaml 1 1 POP3 Alarm

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    C'est pas des StoryBoard qu'on lance lorsque l'on utilise des EventTrigger.Actions ?

    Il y a un exemple ici :
    http://www.developpez.net/forums/d62...lor-animation/

  5. #5
    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
    justement je me demandais si on pouvait faire des setter directement

  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
    Citation Envoyé par binoo Voir le message
    C'est pas des StoryBoard qu'on lance lorsque l'on utilise des EventTrigger.Actions ?
    Si. Donc il est nécessaire de faire un Storyboard qui va modifier, en un minimum de temps, la couleur de ton ellipse.

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Ok. C'est bien ce que je me disais.

    Ceci dit, tu dois pouvoir aussi utiliser un Trigger plutôt qu'un EventTrigger. Pour ton exemple, tu disposes de la propriété IsMouseOver.

    En faisant quelque chose comme ça doit pouvoir marcher :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    			<Ellipse Margin="3,3,3,3" x:Name="el0">
    				<Ellipse.Style>
    				  <Style TargetType="Ellipse">
    				    <Setter Property="Fill" Value="Blue"/>
    				    <Style.Triggers>
    				      <Trigger Property="IsMouseOver" Value="True">
    				        <Setter Property="Fill" Value="Red"/>
    				      </Trigger>
    				    </Style.Triggers>
    				  </Style>
    				</Ellipse.Style>
    			</Ellipse>

  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
    +1 avec ta méthode binoo

  9. #9
    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
    oui merci bino ca marche
    et si je voulais que ce soit sur le ismouseover de la grid ?

    rectification après TEST
    oui en fait je précise c'est au niveau du grid qu'il faut capturer le
    Mouse.MouseEnter (routed event)

    sinon quand on est sur le path qui est contenu dans la grid, et qui se trouve dessus l'ellipse, le ismouseover de l'ellipse repasse a false .... et la c'est pas super bien

  10. #10
    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
    au final j'ai trouve une solution en faisant template (enfin le style) pour un button et ca marche comme je veux
    voici le code
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <Style x:Key="buttonPerso" TargetType="{x:Type Button}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Grid>
                                <Ellipse Fill="{DynamicResource InvertFond}" Margin="0,0,0,0" />
                                <Ellipse Margin="3,3,0,0" x:Name="el" HorizontalAlignment="Left" Width="24" Height="24" VerticalAlignment="Top" Fill="{TemplateBinding Background}"/>
                                <ContentPresenter />
                                <Ellipse Margin="3,3,0,0" HorizontalAlignment="Left" Width="24" Height="24" VerticalAlignment="Top">
                                	<Ellipse.Fill>
                                		<RadialGradientBrush GradientOrigin="0.248,0.297">
                                			<RadialGradientBrush.RelativeTransform>
                                				<TransformGroup>
                                					<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.205" ScaleY="1.205"/>
                                					<SkewTransform AngleX="0" AngleY="0" CenterX="0.5" CenterY="0.5"/>
                                					<RotateTransform Angle="0" CenterX="0.5" CenterY="0.5"/>
                                					<TranslateTransform X="0" Y="0"/>
                                				</TransformGroup>
                                			</RadialGradientBrush.RelativeTransform>
                                			<GradientStop Color="#C8000000" Offset="1"/>
                                			<GradientStop Color="#7FFFFFFF" Offset="0"/>
                                		</RadialGradientBrush>
                                	</Ellipse.Fill>
                                </Ellipse>
    						</Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="true">
                                    <Setter TargetName="el" Property="Margin" Value="4,4,0,0"/>
                                    <Setter TargetName="el" Property="Width" Value="22"/>
                                    <Setter TargetName="el" Property="Height" Value="22"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    merci pour vos reponses

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

Discussions similaires

  1. Une petite erreur de création de templates
    Par terry21 dans le forum C++
    Réponses: 6
    Dernier message: 11/10/2007, 11h55
  2. [MySQL] Une petit erreur qui m'échappe
    Par Psycha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/06/2007, 11h39
  3. Une toute petite erreur..
    Par lelo108 dans le forum C
    Réponses: 6
    Dernier message: 06/01/2007, 12h23

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