我正在做一個簡單的動畫,按預期工作,直到我把我的網格放在邊框上。只要我這樣做,然後當我點擊框架時動畫閃爍。我正在嘗試實現一個「滑入」視圖的菜單。我在下面列出了我的代碼。它幾乎就像我的鼠標點擊造成無限的動畫循環。是什麼導致我的動畫閃爍
<Border BorderBrush="YellowGreen" CornerRadius="8" BorderThickness="10" Background="Black">
<Grid MouseLeftButtonDown="DragWindow">
<Grid.Resources>
<Style TargetType="Frame" x:Key="GrowingFrameStyle">
<Setter Property="Foreground" Value="#505050"/>
<Setter Property="Background" Value="Black" />
<Setter Property="Height" Value="20" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Foreground.Color" To="LightGray" />
<ColorAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Background.Color" To="SteelBlue" />
<DoubleAnimation Storyboard.TargetProperty="Height" From="20" To="50" Duration="0:0:.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Foreground.Color" To="#505050" />
<ColorAnimation Duration="0:0:0.5" Storyboard.TargetProperty="Background.Color" To="Black" />
<DoubleAnimation Storyboard.TargetProperty="Height" From="50" To="20" Duration="0:0:.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="1" Grid.ColumnSpan="2" Background="Black"/>
<Frame Grid.RowSpan="2" Grid.ColumnSpan="2" Background="SlateBlue" VerticalAlignment="Top" Style="{StaticResource GrowingFrameStyle}"/>
</Grid>
</Border>
唯一方法在後面的代碼
private void DragWindow(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
DragMove();
}
我們可能需要看到DragWindow方法 – Phil 2012-02-20 18:33:59
我轉載了這個問題。點擊是一個IsMouseOver重新開始,但不是沒有邊界。我不知道爲什麼。如果您點擊前20名,故事板只會運行一次。如果你點擊底部的20-50,你會得到一個循環。我不知道答案,他們是我作爲評論發佈的原因。 – Paparazzi 2012-02-20 19:10:58
我認爲答案是在事件冒泡的地方。如果在邊界上打開IsHitVisable = false,則不會發生任何事情。我不知道答案,但它表明邊界是偶數序列。 – Paparazzi 2012-02-20 19:16:53