アニメーション (RenderTransform を使用) によって移動された赤い境界線があり、その下の青い境界線は MouseEnter イベントを処理しています。
残念ながら、MouseEnter は、マウスが青い境界線に入ったとき (赤い境界線が離れたため) ではなく、マウスが移動したときに発生します。
以下のサンプルは Silverlight でテストされていますが、WPF でも同じことが起こると思います。
編集:さらにテストした後、これは WPF で機能します。MrJul が示唆するように、これはバグですか、それとも Silverlight の「欠けている機能」の 1 つですか?
XAML
<Grid x:Name="borders" Width="40" Height="20">
<Grid.Resources>
<Storyboard x:Key="blueMove">
<DoubleAnimation Duration="0:0:3" From="0" To="40" Storyboard.TargetName="redBorder"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)"/>
</Storyboard>
</Grid.Resources>
<Border Background="Blue" MouseEnter="Border_MouseEnter" />
<Border x:Name="redBorder" Background="Red" MouseLeftButtonDown="Border_MouseLeftButtonDown">
<Border.RenderTransform>
<TransformGroup>
<TranslateTransform Y="0"/>
</TransformGroup>
</Border.RenderTransform>
</Border>
</Grid>
C# コード ビハインド
private void Border_MouseEnter(object sender, MouseEventArgs e)
{
// Only called at the first MouseMove
}
private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
(borders.Resources["blueMove"] as Storyboard).Begin();
}