public static Storyboard GetHide(AirspacePanel tbMarkdownPanel, Grid gridNote, Rectangle gridSplitterMarkdown)
        {
            tbMarkdownPanel.Width = tbMarkdownPanel.ActualWidth;

            var visAnim = new ObjectAnimationUsingKeyFrames()
            {
                KeyFrames = new ObjectKeyFrameCollection()
                {
                    new DiscreteObjectKeyFrame(Visibility.Collapsed, KeyTime.FromPercent(0))
                }
            };

            Storyboard.SetTarget(visAnim, gridSplitterMarkdown);
            Storyboard.SetTargetProperty(visAnim, new PropertyPath("(FrameworkElement.Visibility)"));

            var marginAnim = new ThicknessAnimationUsingKeyFrames()
            {
                Duration  = new Duration(TimeSpan.FromMilliseconds(500)),
                KeyFrames = new ThicknessKeyFrameCollection()
                {
                    new EasingThicknessKeyFrame(new Thickness(0, 0, -tbMarkdownPanel.ActualWidth, 0), KeyTime.FromPercent(1))
                    {
                        EasingFunction = new SineEase()
                        {
                            EasingMode = EasingMode.EaseOut
                        }
                    }
                }
            };

            Storyboard.SetTarget(marginAnim, tbMarkdownPanel);
            Storyboard.SetTargetProperty(marginAnim, new PropertyPath("(FrameworkElement.Margin)"));

            var sb = new Storyboard()
            {
                Children = new TimelineCollection()
                {
                    visAnim, marginAnim
                }
            };

            return(sb);
        }
        public static Storyboard GetShow(AirspacePanel tbMarkdownPanel, Grid gridNote, Rectangle gridSplitterMarkdown)
        {
            // Fixes the first time width to half the screen
            tbMarkdownPanel.Width  = gridNote.ActualWidth / 2;
            tbMarkdownPanel.Margin = new Thickness(0, 0, -tbMarkdownPanel.Width, 0);

            var visAnim = new ObjectAnimationUsingKeyFrames()
            {
                Duration  = new Duration(TimeSpan.FromMilliseconds(500)),
                KeyFrames = new ObjectKeyFrameCollection()
                {
                    new DiscreteObjectKeyFrame(Visibility.Visible, KeyTime.FromPercent(1))
                }
            };

            Storyboard.SetTarget(visAnim, gridSplitterMarkdown);
            Storyboard.SetTargetProperty(visAnim, new PropertyPath("(FrameworkElement.Visibility)"));

            var marginAnim = new ThicknessAnimationUsingKeyFrames()
            {
                Duration  = new Duration(TimeSpan.FromMilliseconds(500)),
                KeyFrames = new ThicknessKeyFrameCollection()
                {
                    new EasingThicknessKeyFrame(new Thickness(0), KeyTime.FromPercent(1))
                    {
                        EasingFunction = new SineEase()
                        {
                            EasingMode = EasingMode.EaseOut
                        }
                    }
                }
            };

            Storyboard.SetTarget(marginAnim, tbMarkdownPanel);
            Storyboard.SetTargetProperty(marginAnim, new PropertyPath("(FrameworkElement.Margin)"));

            var widthAnim = new DoubleAnimationUsingKeyFrames()
            {
                Duration  = new Duration(TimeSpan.FromMilliseconds(500)),
                KeyFrames = new DoubleKeyFrameCollection()
                {
                    new SplineDoubleKeyFrame(tbMarkdownPanel.ActualWidth, KeyTime.FromPercent(0.999)),
                    new SplineDoubleKeyFrame(Double.NaN, KeyTime.FromPercent(1))
                }
            };

            Storyboard.SetTarget(marginAnim, tbMarkdownPanel);
            Storyboard.SetTargetProperty(marginAnim, new PropertyPath("(FrameworkElement.Margin)"));

            var sb = new Storyboard()
            {
                Children = new TimelineCollection()
                {
                    visAnim, marginAnim
                }
            };

            sb.Completed += (sender, args) =>
            {
                tbMarkdownPanel.Width  = gridNote.ActualWidth / 2;
                tbMarkdownPanel.Margin = new Thickness(0, 0, 0, 0);
            };

            return(sb);
        }