Я создал анимацию в моем стиле «MenuItem» в Window.Resources
<Style TargetType = "MenuItem">
<Setter Property = "Foreground" Value = "White"/>
<Setter Property = "FontSize" Value = "10"/>
<Setter Property = "Background">
<Setter.Value>
<SolidColorBrush Color = "#2e3137"/>
</Setter.Value>
</Setter>
<Setter Property = "Template">
<Setter.Value>
<ControlTemplate TargetType = "{x:Type MenuItem}">
<Border x:Name = "Bd" Padding = "17,0,17,0" BorderBrush = "{TemplateBinding BorderBrush}" BorderThickness = "{TemplateBinding BorderThickness}" Background = "#2e3137" SnapsToDevicePixels = "True" Uid = "Border_38">
<ContentPresenter x:Name = "ContentPresenter" Content = "{TemplateBinding Header}" Grid.Column = "1" ContentSource = "Header" Margin = "{TemplateBinding Padding}" RecognizesAccessKey = "True" SnapsToDevicePixels = "{TemplateBinding SnapsToDevicePixels}" Uid = "ContentPresenter_33"/>
</Border>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent = "MenuItem.MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation To = "Gray" Storyboard.TargetProperty = "(MenuItem.Background).(SolidColorBrush.Color)" Duration = "0:0:0.3"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent = "MenuItem.MouseLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation To = "Transparent" Storyboard.TargetProperty = "(MenuItem.Background).(SolidColorBrush.Color)" Duration = "0:0:0.3"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<Trigger Property = "IsEnabled" Value = "False">
<Setter Property = "Opacity" TargetName = "Bd" Value = "0.56"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Этот хорошо работает. Но потом я понял, что мне нужно переместить стиль в Application.Resources, потому что мне нужен этот стиль в разных окнах, но когда я его переместил, анимация перестает работать с ошибкой: свойство «Фон» не указывает на DependencyObject в пути »( 0). (1) '. Так в чем разница между этими ресурсами и как решить мою проблему? Спасибо.
UPD: обнаружил эту проблему не с MenuItems, а с Labels, что странно, потому что я установил этот стиль только на Labels
<Style TargetType = "Label">
<Setter Property = "Foreground" Value = "White"/>
<Setter Property = "FontSize" Value = "14"/>
</Style>
Вот и все, спасибо большое!





Когда вы устанавливаете содержимое метки, вы получаете текстовый блок. У вас есть какие-то стили текстового блока?