开发者

Glowing WPF Buttons

开发者 https://www.devze.com 2022-12-20 14:17 出处:网络
After clicking the WPF buttons in our app they glow blue, back to original color, back to blue, etc.This appears to be defaul开发者_运维百科t behavior on Windows Vista/7. It does not happen on XP. Any

After clicking the WPF buttons in our app they glow blue, back to original color, back to blue, etc. This appears to be defaul开发者_运维百科t behavior on Windows Vista/7. It does not happen on XP. Any advice?


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>


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消