解决方案 »

  1.   

     <Style x:Key="test">
                <Style.Triggers>
                    <Trigger Property="Control.IsMouseOver" Value="True">
                        <Setter Property="Control.Background" Value="Red"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
      

  2.   

    基本上,我使用 Blend 开发时支持的 TriggerAction,而不手写“触发器”代码。
      

  3.   


    是这样的。如果你需要设置其它控件的属性,直接指定Name就可以。例如<Trigger Property="IsMouseOver" Value="True">
        <!-- 设置鼠标指向时的颜色 -->
        <Setter TargetName="bd1" Property="Background" Value="#FFC1E9FF" />
    </Trigger>
      

  4.   

    我顶楼的代码,并没有Style啊,是一个UserControl
      

  5.   

    在UserControl中,无法写属性触发器吗?
      

  6.   

    这是blend自动生成的代码:
    <UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/up-compatibility/2006" x:Name="userControl"
    mc:Ignorable="d"
    x:Class="WpfApplication1.UserControl1"
    d:DesignWidth="640" d:DesignHeight="480" Background="Black">
    <UserControl.Resources>
    <Storyboard x:Key="OnMouseEnter1">
    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="userControl">
    <EasingColorKeyFrame KeyTime="0" Value="Red"/>
    </ColorAnimationUsingKeyFrames>
    </Storyboard>
    </UserControl.Resources>
    <UserControl.Triggers>
    <EventTrigger RoutedEvent="Mouse.MouseEnter">
    <BeginStoryboard Storyboard="{StaticResource OnMouseEnter1}"/>
    </EventTrigger>
    </UserControl.Triggers>

    <Grid x:Name="LayoutRoot">
    </Grid>
    </UserControl>
      

  7.   

    楼主学一下blend会让你轻松许多