/// <summary>
 /// Konstruktor zur Erstellung einer Singletoninstanz.
 /// </summary>
 private ScreenManager()
 {
     Dimensions = new Vector2(640, 480);
     currentScreen = new GameplayScreen();
     lastScreens = new Stack<Screen>();
     ScreenChanged = false;
 }
        public void LoadContent(ContentManager content)
        {
            this.Content = new ContentManager(content.ServiceProvider, "Content");

            XmlManager<Screen> screenLoader = new XmlManager<Screen>();
            currentScreen = screenLoader.Load("Load/Screens/TitleMenuScreen.xml");
            currentScreen.LoadContent();
        }
        /// <summary>
        /// Ändert den aktuelle Screen zu einem anderen. Ist der Pfad leer wird der letzte Screen vor dem jetzigen genutzt.
        /// </summary>
        /// <param name="path">der Pfad zum neuen Screen</param>
        public void ChangeScreen(string path = "")
        {
            // Wenn der Pfad leer ist, wird der letzte Screen genommen
            if(path == String.Empty && lastScreens.Count != 0)
            {
                currentScreen.UnloadContent();
                currentScreen = lastScreens.Pop();
            }
            else if(path != String.Empty)
            {
                // Ob der Bildschirm in den Stack kann.
                if(currentScreen.Stackable)
                    lastScreens.Push(currentScreen);
                else
                    currentScreen.UnloadContent();

                XmlManager<Screen> screenLoader = new XmlManager<Screen>();
                currentScreen = screenLoader.Load(path);
                currentScreen.LoadContent();
                ScreenChanged = true;

                // Ob der Bildschirm nur alleine existieren kann.
                if(currentScreen.SinglyScreen)
                {
                    foreach(Screen screen in lastScreens)
                        screen.UnloadContent();
                    lastScreens.Clear();
                }
            }
        }