Светящиеся кнопки WPF - PullRequest
       20

Светящиеся кнопки WPF

7 голосов
/ 16 февраля 2010

После нажатия кнопок WPF в нашем приложении они светятся синим цветом, возвращаются к исходному цвету, обратно к синему и т. Д. Это похоже на поведение по умолчанию в Windows Vista / 7. Это не происходит на XP. Любой совет?

Ответы [ 2 ]

9 голосов
/ 16 февраля 2010

Вам необходимо переопределить шаблон кнопки по умолчанию - http://mark -dot-net.blogspot.com / 2007/07 / creation-custom-wpf-button-template-in.html должно получить Я начал.

В частности, раздел 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>
2 голосов
/ 16 февраля 2010

Вам необходимо переопределить ControlTemplate. В противном случае он использует триггеры для установки цветов на события, например, наведение мыши на него. Если вы просто установите Background, вы устанавливаете фон по умолчанию только тогда, когда Trigger не происходит.

...