none
Changer la couleur d'un Button en forme d'ellipse lors du MouseOver RRS feed

  • Question

  • Bonjour, voici un code qui me permet d'appliquer un design special aux Button de mon Window.Je souhaiterais rajouter une partie de code pour changer la couleur de l'ellipse lors du MouseOver.

    merci de votre aide.

      <Style x:Key="MyBtnStyle" TargetType="{x:Type Button}">
                <Setter Property="Width" Value="{Binding Width}"/>
                <Setter Property="Height" Value="{Binding Height}"/>
                <Setter Property="FontFamily" Value="Segoe UI"/>
                <Setter Property="FontWeight" Value="Thin"/>
                <Setter Property="Foreground" Value="Gold"/>
                <Setter Property="FontSize" Value="26"/>
                <Setter Property="Cursor" Value="Hand"/>
                <Setter Property="Effect">
                    <Setter.Value>
                        <DropShadowEffect Color="White" ShadowDepth="0" BlurRadius="10"/>
                    </Setter.Value>
                </Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Grid>
                                <Ellipse x:Name="MyEle">
                                    <Ellipse.Fill>
                                        <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"
                                                             GradientOrigin="0.6,0.3">
                                            <GradientStop Color="WhiteSmoke" Offset="0.0"/>
                                            <GradientStop Color="Blue" Offset="0.8"/>
                                        </RadialGradientBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                
            </Style>


    JF Collombet ® CreateSpecificCulture

    samedi 10 septembre 2016 01:56

Toutes les réponses

  • Bonjour,

    Tu peux faire ça avec des Triggers. 

    Le code suivant devrait fonctionner normalement.

    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition  Property="Button.IsMouseOver"    Value="true"/>
            </MultiTrigger.Conditions>
            <MultiTrigger.Setters>
                <Setter     Property="Button.Background"     Value="Yellow"/>
            </MultiTrigger.Setters>
        </MultiTrigger>
    </Style.Triggers>
    Tu le places à l'intérieur de ta balise style globale de ton bouton.


    Tu as un autre exemple à ce lien : https://social.msdn.microsoft.com/Forums/vstudio/changer-le-background-dun-bouton-lors-du-survol-en-wpf
    lundi 12 septembre 2016 11:38
  • Bonjour,

    Dans votre cas, un simple Trigger me paraît suffisant puisque vous n'avez qu'une condition

    <Style x:Key="Triggers" TargetType="Button">
        <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="true">
            <Setter Property = "Background" Value="VotreCouleur"/>
        </Trigger>
        </Style.Triggers>
    </Style>
    

    mardi 13 septembre 2016 03:51