Я пытаюсь создать простой стиль, который выделяет сфокусированный элемент пользовательского интерфейса (текстовое поле, комбо и т. Д.), В то время как он имеет фокус, и уходит, когда теряется фокус.WPF Styles, BasedOn, & Storyboards
Я придумал это: `
<Style TargetType="{x:Type FrameworkElement}" x:Key="OnFocus">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Red"
BlurRadius="0"
ShadowDepth='0' />
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="UIElement.GotFocus">
<BeginStoryboard Name="highlight">
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.BlurRadius)"
To="8"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="UIElement.LostFocus">
<RemoveStoryboard BeginStoryboardName="highlight"></RemoveStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>`
Но если я пытаюсь создавать простые стили BasedOn, он не может найти BeginStoryboardName =«изюминку», так что каждый из элементов заканчивается, имеющим весь стиль. Триггеры.
Есть ли лучший способ сделать это?
О, да, поскольку у меня около 400 элементов freakin, я ищу решение стиля/xaml. – 2009-09-22 20:05:18