Glowing WPF Buttons

2020-07-10 07:02发布

After clicking the WPF buttons in our app they glow blue, back to original color, back to blue, etc. This appears to be default behavior on Windows Vista/7. It does not happen on XP. Any advice?

2条回答
来,给爷笑一个
2楼-- · 2020-07-10 07:17

You need to override the ControlTemplate. Otherwise it's using triggers to set the colors on events like hovering the mouse over it. If you simply set the Background, you're only setting the default background when there's no Triggers going on.

查看更多
我想做一个坏孩纸
3楼-- · 2020-07-10 07:23

You need to override the default button template -- http://mark-dot-net.blogspot.com/2007/07/creating-custom-wpf-button-template-in.html should get ya started.

Specifically Section 3:

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" />
        <Setter Property="Foreground" Value="#FF4788c8" />
    </Trigger>
    <Trigger Property="IsPressed" Value="True">                   
       <Setter Property="Background" >
           <Setter.Value>
               <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                   <GradientStop Color="#FFFFD190" Offset="0.35"/>
                   <GradientStop Color="Orange" Offset="0.95"/>
                   <GradientStop Color="#FFFFD190" Offset="1"/>
               </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter TargetName="content" Property="RenderTransform" >
            <Setter.Value>
                <TranslateTransform Y="1.0" />
            </Setter.Value>
        </Setter>
    </Trigger>
    <Trigger Property="IsDefaulted" Value="True">
       <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
    </Trigger>
    <Trigger Property="IsFocused" Value="True">
       <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
    </Trigger>
    <Trigger Property="IsEnabled" Value="False">
       <Setter TargetName="border" Property="Opacity" Value="0.7" />
       <Setter Property="Foreground" Value="Gray" />
   </Trigger>
</ControlTemplate.Triggers>
查看更多
登录 后发表回答