public static void ExportModules(string filePath, bool showQuickTip = false) { if (string.IsNullOrWhiteSpace(filePath)) { return; } ContainerManager.UpdateCurrentDisplayObjectData(); List <Module> modules = new List <Module>(); int count = GlobalData.Modules.Count; for (int idx = 0; idx < count; ++idx) { Module module = new Module { Name = GlobalData.Modules[idx] }; module.Elements = GlobalData.ModuleDic[module.Name]; Rectangle rect = DisplayObjectUtil.GetMinRectangleContainsDisplayObjects(module.Elements); if (rect != null) { module.X = rect.X; module.Y = rect.Y; module.Width = rect.Width; module.Height = rect.Height; } modules.Add(module); } string jsonString = JsonConvert.SerializeObject(modules, Formatting.Indented); bool result = Utils.WriteFile(filePath, Encoding.UTF8.GetBytes(jsonString)); if (result) { string message = $"成功导出到 {filePath}"; if (showQuickTip) { QuickTipManager.ShowQuickTip(message); } else { DialogManager.ShowInfo(message); } GlobalData.CurrentFilePath = filePath; GlobalData.ModifyCount = 0; } else { const string message = "导出失败"; if (showQuickTip) { QuickTipManager.ShowQuickTip(message); } else { DialogManager.ShowError(message, 0, 0); } } }