我有这个故事板,当你将鼠标悬停在网格上时开始:
<Storyboard x:Key="SB_MouseEnter">
<DoubleAnimation To="0" Storyboard.TargetName="gridNav"
Storyboard.TargetProperty="(UIElement.RenderTransform).
(TranslateTransform.Y)"
Duration="0:0:0.2"/>
</Storyboard>
我想在它动画之前将鼠标悬停在它上500ms。如何做到这一点?
答案 0 :(得分:1)
您可以使用DispatcherTimer
class与UIElement.MouseEnter
和UIElement.MouseLeave
事件一起等待500毫秒,然后使用Begin
方法手动启动Storyboard
。尝试这样的事情:
private DispatcherTimer timer;
private void OnMouseEnterHandler(object sender, MouseEventArgs e)
{
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
timer.Tick += Timer_Tick;
timer.Start();
}
private void OnMouseLeaveHandler(object sender, MouseEventArgs e)
{
timer.Stop();
}
private void Timer_Tick(object sender, EventArgs e)
{
SB_MouseEnter.Begin();
timer.Stop();
}
答案 1 :(得分:1)
在故事板上指定您希望时间轴开始的BeginTime(在您的情况下为0.5秒):
<DoubleAnimation To="0" Storyboard.TargetName="gridNav"
Storyboard.TargetProperty="(UIElement.RenderTransform).
(TranslateTransform.Y)"
Duration="0:0:0.2"
BeginTime="0:0:0.5"/>