Светящиеся кнопки WPF
Вопрос
После нажатия кнопок WPF в нашем приложении они светятся синим, возвращаются к исходному цвету, снова становятся синими и т.д.Похоже, что это поведение по умолчанию в Windows Vista / 7.В XP этого не происходит.Есть какой-нибудь совет?
Решение
Вам нужно переопределить шаблон кнопки по умолчанию -- http://mark-dot-net.blogspot.com/2007/07/creating-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>
Другие советы
Вам нужно переопределить ControlTemplate
.В противном случае он использует триггеры для установки цветов для событий, таких как наведение на них курсора мыши.Если вы просто установите Background
, вы устанавливаете фон по умолчанию только тогда, когда нет Trigger
это продолжается.
Не связан с StackOverflow