我正在为"菜单面板"创建动画。按钮点击后应执行此动画,但这是问题所在。我有一个按钮,应该执行两个动画。是否有任何方式,如何检测,是否已经执行了转换并决定在点击后必须执行哪一个?
类似的东西:
if (DataPanel.Transformed) //what atribute to check?
{
((Storyboard)Resources["dataPanelHideSB"]).Begin();
}
else
{
((Storyboard)Resources["dataPanelShowSB"]).Begin();
}
在动画实现之前,我使用了边距检查来决定,如果面板是否隐藏,但是在TranslateTransform中受影响的是realWidth / realHeight(?),这是我无法比较的。
原版:
if (DataPanel.Margin.Top != 0)
{
DataPanel.Margin = new Thickness(0, ((Window.Current.Bounds.Height / 6) * 4), 0, -((Window.Current.Bounds.Height / 6) * 4));
}
else
{
DataPanel.Margin = new Thickness(0, 0, 0, 0);
}
答案 0 :(得分:0)
我在发布此问题后就明白了。解决方案非常简单:
if(((Storyboard)Resources["dataPanelShowSB"]).GetCurrentState() == ClockState.Filling )
{
((Storyboard)Resources["dataPanelHideSB"]).Begin();
((Storyboard)Resources["dataPanelShowSB"]).Stop();
}
else
{
((Storyboard)Resources["dataPanelShowSB"]).Begin();
}