Я объявил ColorAnimations внутри ControlTemplate стиля.
Что он должен делать:
Всякий раз, когда мышь наводит курсор на объект, цвет этого конкретного объекта должен быть анимированным.
Что он делает вместо этого:
Анимация цвета КАЖДОГО объекта, к которому применяется стиль, всякий раз, когда я наводю курсор на один из них, даже если свойство, активирующее анимацию, изменяется не на всех объектах.
То, что я пробовал раньше:
Я пытался использовать Eventrigger вместо обычного триггера, но проблема сохраняется.Я также попытался использовать свойство «Имя», а не «x: Имя», но это тоже не помогло.Также не с использованием Storyboard.TargetName, а с Storyboard.Target и использованием привязки с RelativeSource, чтобы он мог найти объект ... и все же каждый объект, использующий этот стиль, анимируется всякий раз, когда я наводю указатель мыши на любой из них
Он работает как задуманоесли я использую Setters для изменения фона вместо раскадровки и ColorAnimations.
Стиль
<Style x:Key="Fraction_ScrollViewer_ScrollBar_Thumb" TargetType="{x:Type Thumb}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border
x:Name="Border"
CornerRadius="5"
Background="{TemplateBinding Background}"
BorderThickness="0" />
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard
Name="IsMouseOver_True"
HandoffBehavior="Compose">
<Storyboard>
<ColorAnimation
Storyboard.TargetName="Border"
Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"
To="{StaticResource 'Color_CoolGrey'}"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard
Name="IsMouseOver_False">
<Storyboard>
<ColorAnimation
Storyboard.TargetName="Border"
Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"
To="{StaticResource 'Color_MidGrey'}"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
Стиль Thumb используется в стиле полосы прокрутки, которая используется в ScrollViewer.Стиль Scrollviewer Style затем используется в 2 местах:
1:
<Style x:Key="LabelTreeView" TargetType="{x:Type TreeView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeView}">
<ScrollViewer
Style="{StaticResource ScrollViewer}"
Focusable="False"
CanContentScroll="False"
Padding="4">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
2:
<ScrollViewer
Style="{StaticResource ScrollViewer}"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto">
<ItemsControl
BorderThickness="0"
Background="{StaticResource Brush_Transparent}"
ItemTemplate="{StaticResource CharacterSequenceChar}"
ItemsSource="{Binding DisplayedCharacterSequenceCharacters}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
Что вызывает такое поведение и как его избежать при неподвижномиспользуя анимацию?