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(); } }