public void ShowAnswer()
        {
            FrameworkElement answerContainer = ViewHelpers.FindSiblingByName(this, this.AnswerContainerName);

            Dispatcher.BeginInvoke(() =>
            {
                IEasingFunction easeOut = new QuarticEase()
                {
                    EasingMode = EasingMode.EaseOut
                };

                Storyboard sb = new Storyboard();


                // Animate the height
                DoubleAnimation heightAnim = new DoubleAnimation()
                {
                    From           = 0,
                    To             = this.AnswerContainerHeight,
                    Duration       = TimeSpan.FromMilliseconds(750),
                    EasingFunction = easeOut,
                };
                Storyboard.SetTargetProperty(heightAnim, new PropertyPath(FrameworkElement.HeightProperty));
                Storyboard.SetTarget(heightAnim, answerContainer);
                sb.Children.Add(heightAnim);
                // 'Animate' the visibility
                ObjectAnimationUsingKeyFrames visibilityAnim = new ObjectAnimationUsingKeyFrames();
                visibilityAnim.KeyFrames.Add(new DiscreteObjectKeyFrame()
                {
                    KeyTime = TimeSpan.FromMilliseconds(0),
                    Value   = Visibility.Visible,
                });
                Storyboard.SetTarget(visibilityAnim, answerContainer);
                Storyboard.SetTargetProperty(visibilityAnim, new PropertyPath(FrameworkElement.VisibilityProperty));
                sb.Children.Add(visibilityAnim);

                // Add child animations
                //var children = ViewHelpers.GetChildren(answerContainer);
                //double offset = 0;
                //foreach (FrameworkElement child in children)
                //{
                //    offset += 100;
                //    DoubleAnimation rotAnim = new DoubleAnimation()
                //    {
                //        From = 90,
                //        To = 0,
                //        Duration = TimeSpan.FromMilliseconds(1000),
                //        EasingFunction = easeOut,
                //        BeginTime = TimeSpan.FromMilliseconds(offset),
                //    };
                //    Storyboard.SetTargetProperty(rotAnim, new PropertyPath(PlaneProjection.RotationXProperty));
                //    Storyboard.SetTarget(rotAnim, child);
                //    sb.Children.Add(rotAnim);
                //}

                sb.Begin();
            });
        }