// 修改字典文件 static void ModifyDict(TjsDict dict, int sw, int sh, int dw, int dh) { double scaleX = (double)dw / sw; double scaleY = (double)dh / sh; TjsHelper.ScaleInteger(dict, "left", scaleX); TjsHelper.ScaleInteger(dict, "x", scaleX); TjsHelper.ScaleInteger(dict, "marginr", scaleX); TjsHelper.ScaleInteger(dict, "marginl", scaleX); TjsHelper.ScaleInteger(dict, "top", scaleY); TjsHelper.ScaleInteger(dict, "y", scaleY); TjsHelper.ScaleInteger(dict, "margint", scaleY); TjsHelper.ScaleInteger(dict, "marginb", scaleY); // 修改locate数组 TjsHelper.ScalePosArray(dict, "locate", scaleX, scaleY); foreach (KeyValuePair <string, TjsValue> kv in dict.val) { TjsDict inner = kv.Value as TjsDict; if (inner != null) { ModifyDict(inner, sw, sh, dw, dh); } } }
// 修改UI布局文件 static void ModifyLayout(string dataPath, int sw, int sh, int dh, int dw) { // 更新layout string[] layouts = Directory.GetFiles(dataPath, WizardConfig.UI_LAYOUT); foreach (string layout in layouts) { TjsDict setting = TjsValue.Load(layout) as TjsDict; if (setting != null) { ModifyDict(setting, sw, sh, dw, dh); // 对这个文件里的按钮作特殊处理 if (layout.ToLower().EndsWith("uislpos.tjs")) { double scaleX = (double)dw / sw; double scaleY = (double)dh / sh; TjsHelper.ScaleButton(setting, "back", scaleX, scaleY); TjsHelper.ScaleButton(setting, "up", scaleX, scaleY); TjsHelper.ScaleButton(setting, "down", scaleX, scaleY); } } setting.Save(layout, Encoding.Unicode); } }