WPF - 如何检测是否执行了转换

时间:2014-09-10 12:44:38

标签: c# wpf win-universal-app

我正在为"菜单面板"创建动画。按钮点击后应执行此动画,但这是问题所在。我有一个按钮,应该执行两个动画。是否有任何方式,如何检测,是否已经执行了转换并决定在点击后必须执行哪一个?

类似的东西:

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);
        } 

1 个答案:

答案 0 :(得分:0)

我在发布此问题后就明白了。解决方案非常简单:

if(((Storyboard)Resources["dataPanelShowSB"]).GetCurrentState() == ClockState.Filling )
    {
        ((Storyboard)Resources["dataPanelHideSB"]).Begin();
        ((Storyboard)Resources["dataPanelShowSB"]).Stop();
    }
    else
    {
        ((Storyboard)Resources["dataPanelShowSB"]).Begin();
    }