static Window CreateSplashScreenWindow(object parameter)
        {
            object[] parameters                   = (object[])parameter;
            bool     useFadeEffect                = (bool)parameters[0];
            WindowArrangerContainer owner         = (WindowArrangerContainer)parameters[1];
            SplashScreenLock        lockMode      = (SplashScreenLock)parameters[2];
            IList <TimeSpan>        durations     = SplashScreenHelper.FindParameters <TimeSpan>(parameter);
            FlowDirection           flowDirection = SplashScreenHelper.FindParameter <FlowDirection>(parameter);
            Style windowStyle = SplashScreenHelper.FindParameter <Style>(parameter);
            var   window      = new LoadingDecoratorWindowFree(owner, lockMode);

            if (windowStyle != null)
            {
                window.Style = windowStyle;
            }
            else
            {
                window.ApplyDefaultSettings();
            }
            window.SetCurrentValue(FlowDirectionProperty, flowDirection);
            if (useFadeEffect && durations.Any(x => x.TotalMilliseconds > 0))
            {
                Interaction.GetBehaviors(window).Add(new WindowFadeAnimationBehavior()
                {
                    FadeInDuration = durations[0], FadeOutDuration = durations[1]
                });
            }

            return(window);
        }
        static Window CreateSplashScreenWindow(object parameter) {
            object[] parameters = (object[])parameter;
            bool useFadeEffect = (bool)parameters[0];
            WindowArrangerContainer owner = (WindowArrangerContainer)parameters[1];
            SplashScreenLock lockMode = (SplashScreenLock)parameters[2];
            IList<TimeSpan> durations = SplashScreenHelper.FindParameters<TimeSpan>(parameter);
            FlowDirection flowDirection = SplashScreenHelper.FindParameter<FlowDirection>(parameter);
            Style windowStyle = SplashScreenHelper.FindParameter<Style>(parameter);
            var window = new LoadingDecoratorWindowFree(owner, lockMode);
            if(windowStyle != null)
                window.Style = windowStyle;
            else
                window.ApplyDefaultSettings();
            window.SetCurrentValue(FlowDirectionProperty, flowDirection);
            if(useFadeEffect && durations.Any(x => x.TotalMilliseconds > 0))
                Interaction.GetBehaviors(window).Add(new WindowFadeAnimationBehavior() { FadeInDuration = durations[0], FadeOutDuration = durations[1] });

            return window;
        }