public static GuiScreen FromStream(ContentManager contentManager, Stream stream)
        {
            var skinService = new GuiSkinService();
            var serializer  = new GuiJsonSerializer(contentManager)
            {
                Converters =
                {
                    new GuiSkinJsonConverter(contentManager, skinService),
                    new GuiControlJsonConverter(skinService)
                }
            };

            using (var streamReader = new StreamReader(stream))
                using (var jsonReader = new JsonTextReader(streamReader))
                {
                    var screen = serializer.Deserialize <GuiScreen>(jsonReader);
                    return(screen);
                }
        }
        public static TScreen FromStream <TScreen>(ContentManager contentManager, Stream stream, params Type[] customControlTypes)
            where TScreen : GuiScreen
        {
            var skinService = new GuiSkinService();
            var serializer  = new GuiJsonSerializer(contentManager, customControlTypes)
            {
                Converters =
                {
                    new GuiSkinJsonConverter(contentManager, skinService, customControlTypes),
                    new GuiControlJsonConverter(skinService, customControlTypes)
                }
            };

            using (var streamReader = new StreamReader(stream))
                using (var jsonReader = new JsonTextReader(streamReader))
                {
                    var screen = serializer.Deserialize <TScreen>(jsonReader);
                    return(screen);
                }
        }
        private GuiScreen LoadScreen(string name)
        {
            var skinService = new GuiSkinService();
            var serializer = new GuiJsonSerializer(Content)
            {
                Converters =
                {
                    new GuiSkinJsonConverter(Content, skinService),
                    new GuiControlJsonConverter(skinService)
                }
            };

            using (var stream = TitleContainer.OpenStream(name))
            using (var streamReader = new StreamReader(stream))
            using (var jsonReader = new JsonTextReader(streamReader))
            {
                var screen = serializer.Deserialize<GuiScreen>(jsonReader);
                return screen;
            }
        }