Анимация толщины проблемы? (с параметрами функции Begin) - PullRequest
0 голосов
/ 15 декабря 2011

Есть основной кадр, на котором есть кнопка и элемент управления, а также панель стека. Попытка переместить работающую анимацию из xaml в .cs Я написал следующую классную функцию)):

private void ToggleButton_Checked(object sender, RoutedEventArgs e)
        {
int heightBottom = 100;

System.Windows.Thickness th = stackPanel1.Margin;
            th.Top = stackPanel1.Margin.Top + heightBottom;
ThicknessAnimation animStackPanel1 = new ThicknessAnimation
            {
                From = stackPanel1.Margin,
                To = th,
                AccelerationRatio = 0.2,
                FillBehavior = FillBehavior.Stop,
                DecelerationRatio = 0.8,
                Duration = DURATION
            };
System.Windows.Thickness th2 = fxPSEditorView.Margin;
            th2.Right = fxPSEditorView.Margin.Right - heightBottom;
            th2.Bottom = fxPSEditorView.Margin.Bottom - heightBottom;

            ThicknessAnimation animPSEditorView = new ThicknessAnimation
            {
                From = fxPSEditorView.Margin,
                To = th2,
                AccelerationRatio = 0.2,
                FillBehavior = FillBehavior.Stop,
                DecelerationRatio = 0.8,
                Duration = DURATION
            };
Storyboard.SetTarget(animPSEditorView, fxPSEditorView);
            Storyboard.SetTargetProperty(fxPSEditorView, new PropertyPath(MarginProperty));
            sb.Children.Add(animPSEditorView);
Storyboard.SetTarget(animStackPanel1, stackPanel1);
            Storyboard.SetTargetProperty(stackPanel1, new PropertyPath(MarginProperty));
            sb.Children.Add(animStackPanel1);
sb.Begin();//null reference error here! 
};

Как я понимаю, я должен указать ДВА параметра для sb.Begin - один для stackPanel1, а другой - для fxPSEditorView. Но он не принимает набор объектов в качестве первого параметра. Любые идеи, как запустить эту анимацию, будут приветствоваться! Спасибо

1 Ответ

1 голос
/ 15 декабря 2011

Вам не нужны два параметра, но вы должны передать элемент управления, который содержит анимируемые элементы управления (которые должны находиться в одной области имен).Прочитайте документацию Begin(FrameworkElement).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...