我定义了以下简单CustomerControl:<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StoryboardTest">
<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<Viewbox>
<Grid Background="LightBlue" x:Name="theGrid">
<Rectangle x:Name="faceRect" Width="50" Height="50" >
<Rectangle.RenderTransform>
<ScaleTransform CenterX="25" CenterY="25" ScaleX="1" ScaleY="1"/>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
</Viewbox>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseEnter" SourceName="faceRect">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Width"
To="100"/>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Height"
To="100"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Rectangle.MouseLeave" SourceName="faceRect">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Width"
To="50"/>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Height"
To="50"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
想实现鼠标进入或出控件中的Rectangle时候,分别播放动画,但是,运行却没有反应,如果将EventTrigger的RoutedEvent更改为:<EventTrigger RoutedEvent="Grid.MouseEnter">以及<EventTrigger RoutedEvent="Grid.MouseLeave">则可以触发,请问这是为什么?多谢
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StoryboardTest">
<Style TargetType="{x:Type local:CustomControl1}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl1}">
<Viewbox>
<Grid Background="LightBlue" x:Name="theGrid">
<Rectangle x:Name="faceRect" Width="50" Height="50" >
<Rectangle.RenderTransform>
<ScaleTransform CenterX="25" CenterY="25" ScaleX="1" ScaleY="1"/>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
</Viewbox>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseEnter" SourceName="faceRect">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Width"
To="100"/>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Height"
To="100"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Rectangle.MouseLeave" SourceName="faceRect">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Width"
To="50"/>
<DoubleAnimation Storyboard.TargetName="faceRect"
Storyboard.TargetProperty="Height"
To="50"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
想实现鼠标进入或出控件中的Rectangle时候,分别播放动画,但是,运行却没有反应,如果将EventTrigger的RoutedEvent更改为:<EventTrigger RoutedEvent="Grid.MouseEnter">以及<EventTrigger RoutedEvent="Grid.MouseLeave">则可以触发,请问这是为什么?多谢
<EventTrigger RoutedEvent="Grid.MouseEnter" SourceName="theGrid">
以及
<EventTrigger RoutedEvent="Grid.MouseLeave" SourceName="theGrid">
或者改为:
<EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="theGrid">
以及
<EventTrigger RoutedEvent="Mouse.MouseLeave" SourceName="theGrid">
均可,只要是SourceName="faceRect"就不行,事件就好像触发不了了,请帮忙看下,非常感谢您的帮助!
Rectangle好像没有Background属性吧?