1

我刚刚开始使用 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>........
4

2 回答 2

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>
 ...
于 2012-11-19T02:35:50.827 回答
1

间接属性定位,即 TextBlock.Foreground 在此处描述http://msdn.microsoft.com/en-us/library/ms742451.aspx。它基本上是在说,“嘿,我在类型按钮上找不到名为 TextBlock 的属性。” 它与 Background.Color 一起工作,因为背景属性确实存在于 Button 上,并且它是 ColorBrush 类型,它本身具有 Color 类型的属性。

于 2012-11-19T04:23:01.040 回答