Exemplo n.º 1
0
        public static void Save()
        {
            try
            {
                var properties = new Dictionary <string, object>();
                properties.Add("Theme", Theme.ToString());
                properties.Add("DockMode", DockMode.ToString());
                properties.Add("SizeModeWidth", SizeModeWidth.ToString());
                properties.Add("SizeModeHeight", SizeModeHeight.ToString());

                var pageProperties = new List <Dictionary <string, object> >();
                foreach (var page in Pages)
                {
                    var props = new Dictionary <string, object>();
                    props.Add("PageName", page.PageName);
                    props.Add("Title", page.Title);
                    props.Add("VisibleTitle", page.VisibleTitle);
                    props.Add("VisibleBackButton", page.VisibleBackButton);
                    props.Add("CloseMode", page.CloseMode.ToString());
                    pageProperties.Add(props);
                }
                properties.Add("PageProperties", pageProperties);

                var pageItemProperties = new List <Dictionary <string, object> >();
                foreach (var pageItem in PageItems)
                {
                    var props = new Dictionary <string, object>();
                    props.Add("PageName", pageItem.PageName);
                    props.Add("BackgroundImage", ImageUtil.ToBase64(pageItem.BackgroundImage));
                    props.Add("TextContent", pageItem.TextContent);
                    props.Add("TextAlign", pageItem.TextAlign.ToString());

                    props.Add("TextFont_Name", pageItem.TextFont.Name);
                    props.Add("TextFont_Size", pageItem.TextFont.Size);
                    props.Add("TextFont_Bold", pageItem.TextFont.Bold);
                    props.Add("TextFont_Italic", pageItem.TextFont.Italic);
                    props.Add("TextFont_Strikeout", pageItem.TextFont.Strikeout);
                    props.Add("TextFont_Underline", pageItem.TextFont.Underline);

                    props.Add("ClickMode", pageItem.ClickMode.ToString());
                    props.Add("StartWithAdministrator", pageItem.StartWithAdministrator);
                    props.Add("FilePath", pageItem.FilePath);
                    props.Add("Arguments", pageItem.Arguments);
                    props.Add("LinkPageName", pageItem.LinkPageName);
                    props.Add("X", pageItem.X);
                    props.Add("Y", pageItem.Y);
                    props.Add("Width", pageItem.Width);
                    props.Add("Height", pageItem.Height);
                    pageItemProperties.Add(props);
                }
                properties.Add("PageItemProperties", pageItemProperties);

                string path = Path.Combine(Application.StartupPath, SaveFileName);
                string json = JsonUtil.FromProperties(properties);
                File.WriteAllText(path, json);
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
            finally
            {
                SetDefault();
                InvalidateAllForms();
            }
        }