none
Comment enlever l'outline bleu quand la souris est sur un élément WPF ? RRS feed

  • Question

  • Bonjour,

    Étant débutant sur WPF ça fait plusieurs heure que j'essaie d'enlever l'outline bleu de base 

    [désolé il est censé y avoir une image récapitulative mais mon compte est bugué et est considéré comme non validé -_-"]

    J'arrive pas enlever ce ****** d'outline bleu j'ai tout essayé le windows.chrome, le bouton que vous voyez c'est un template :

        <!-- ProjectItemTemplate Button-->
        <Style x:Key="ProjectItemTemplate" TargetType="{x:Type Button}" BasedOn="{StaticResource BaseStyle}">
            <Setter Property="Width" Value="400"/>
            <Setter Property="Height" Value="200"/>
            <Setter Property="Margin" Value="10"/>
            <Setter Property="IsTabStop" Value="False"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="Foreground" Value="Transparent"/>
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="RenderTransformOrigin" Value="0.5, 0.5"/>
            <Setter Property="RenderTransform">
                <Setter.Value>
                    <ScaleTransform/>
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ButtonBase}">
                        <Border x:Name="border"                          
                                BorderBrush="Transparent" 
                                BorderThickness="0" 
                                Background="Transparent">
                            <Grid>
                                <Image Source="{Binding ImagePath}" RenderOptions.BitmapScalingMode="HighQuality"/>
                                <Border x:Name="NameBorder" Opacity="0" Background="{StaticResource ArchiBlueTransparentBrush}">
                                    <TextBlock FontFamily="{StaticResource Helvetica}" 
                                               Foreground="White" 
                                               HorizontalAlignment="Center" 
                                               VerticalAlignment="Center" 
                                               FontSize="{StaticResource FontSizeLarge}"
                                               Text="{Binding Name}"/>
                                </Border>
                            </Grid>
                        </Border>
                        <!-- Triggers animations -->
                        <ControlTemplate.Triggers>
                            <EventTrigger RoutedEvent="MouseEnter">
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
                                                         From="1"
                                                         To="1.1"
                                                         Duration="0:0:0.1"/>
                                        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
                                                         From="1"
                                                         To="1.1"
                                                         Duration="0:0:0.1"/>
                                        <DoubleAnimation Storyboard.TargetName="NameBorder" Storyboard.TargetProperty = "Opacity"
                                                         From="0"
                                                         To="1"
                                                         Duration="0:0:0.1"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </EventTrigger>
                            <EventTrigger RoutedEvent="MouseLeave">
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
                                                         From="1.1"
                                                         To="1"
                                                         Duration="0:0:0.1"/>
                                        <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
                                                         From="1.1"
                                                         To="1"
                                                         Duration="0:0:0.1"/>
                                        <DoubleAnimation Storyboard.TargetName="NameBorder" Storyboard.TargetProperty = "Opacity"
                                                         From="1"
                                                         To="0"
                                                         Duration="0:0:0.1"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </EventTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    Je sais pas ce qu'il manque pour enlever ce truc... Même en ne me basant pas sur le BaseStyle etc...

    Si quelqu'un à réussi à enlever le comportement de base de Windows je veux bien savoir comment :)

    Alexandre

    vendredi 23 novembre 2018 11:48

Réponses

  • Bonjour Alexandre_Marie,

    Vous devez éditer le Template de votre bouton, les effets bleus sont appliqué sur les état MouseOver et Pressed, il vous suffit de les enlever ou d'attribuer vos propres valeurs : 

    <Window.Resources>
            <Style x:Key="FocusVisual">
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
            <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
            <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
            <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
            <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
            <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
            <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
            <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
            <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
            <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
                <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
                <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
                <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="Padding" Value="1"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                                <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsDefaulted" Value="true">
                                    <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                                </Trigger>
                                <Trigger Property="IsMouseOver" Value="true">
                                    <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
                                    <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
                                </Trigger>
                                <Trigger Property="IsPressed" Value="true">
                                    <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
                                    <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
                                </Trigger>
                                <Trigger Property="IsEnabled" Value="false">
                                    <Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
                                    <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
                                    <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Window.Resources>
        <Grid>
            <Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="74" Style="{DynamicResource ButtonStyle1}"/>
    
        </Grid>

    Cordialement,

    vendredi 23 novembre 2018 12:16