我刚刚开始使用WPF(如果问题太明显,我很抱歉),我设法将这种鼠标悬停方式整合在一起。 背景色动画为较暗的颜色。我现在想要将文本设置为白色,因此更容易阅读。
这是我尝试添加它的方式,但它给了我错误"无法解析属性路径中的所有属性引用' TextBlock.Foreground'。验证适用的对象是否支持属性"当我鼠标悬停它。
<Border Background="#e6ebf3" CornerRadius="0,10,0,10" >
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="#e6ebf3" />
<Setter Property="TextBlock.Foreground" Value="Black"/>
<Style.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Background.Color" To="#6d809b" />
<ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="TextBlock.Foreground" To="white" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="UIElement.MouseLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="Background.Color" To="#e6ebf3" />
<ColorAnimation Duration="0:0:0.1" Storyboard.TargetProperty="TextBlock.Foreground" To="Black" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Border.Style>........
答案 0 :(得分:1)
我发现了一种不使用故事板或动画的替代方法,所以我会发布它以防万一。尽管如此,仍然想知道原来的那个。
<Border CornerRadius="0,10,0,10" >
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="#e6ebf3" />
<Setter Property="TextBlock.Foreground" Value="Black"/>
<Style.Triggers>
<Trigger Property ="IsMouseOver" Value="True">
<Setter Property= "Background" Value="#6d809b"/>
<Setter Property= "TextBlock.Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
...
答案 1 :(得分:1)
间接属性定位,即TextBlock.Foreground,此处描述http://msdn.microsoft.com/en-us/library/ms742451.aspx。它基本上是在说,“嘿,我找不到一个名为TextBlock的属性按钮。”它适用于Background.Color,因为Background属性确实存在于Button上,它的类型为ColorBrush,它本身具有Color类型的属性。