所以在WPF项目中我刚刚开始我有一个UserControl,它最终将作为一种文档选项卡运行(我已经简化了这个问题的代码)。在UserControl上是一个TextBlock,所需的行为是当用户将鼠标悬停在控件上时,文本应该改变颜色。下面的XAML工作(在另一个文件中定义的资源)但是ColorAnimation发生在UserControl的每个实例上,而不仅仅是我将鼠标悬停在其上。因此,如果我将这些控件中的一些分散在UI上并将鼠标移动到其中一个上,则所有控件都会改变颜色。为什么???我已经尝试将触发器添加到UserControl,Grid和TextBlock本身,但它似乎没有区别。一如既往,感谢任何建议。
<UserControl x:Class="OurCompany.TabControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Height="24" Width="Auto">
<UserControl.Resources>
<Storyboard x:Key="MouseEnterFade">
<ColorAnimation Storyboard.TargetName="TabTitleText" Storyboard.TargetProperty="Foreground.Color"
Duration="0:0:0.1"
To="{DynamicResource FrameBorderColor}"/>
</Storyboard>
<Storyboard x:Key="MouseLeaveFade">
<ColorAnimation Storyboard.TargetName="TabTitleText" Storyboard.TargetProperty="Foreground.Color"
Duration="0:0:0.1"
To="{DynamicResource MenuForegroundColor}"/>
</Storyboard>
</UserControl.Resources>
<UserControl.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource MouseEnterFade}"/>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource MouseLeaveFade}"/>
</EventTrigger.Actions>
</EventTrigger>
</UserControl.Triggers>
<Grid x:Name="TabGrid" Background="Transparent">
<TextBlock x:Name="TabTitleText" Text="{Binding Path=Header}" Margin="10,0,10,0" Foreground="{DynamicResource MenuForegroundBrush}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</UserControl>