protected void FitSizeToTemplateWidth(ILayout layout, float width, float height) { IElement[] dfs = layout.QueryElements((e) => { return(e is IDataFrame); }); if (dfs == null || dfs.Length == 0) { return; } IDataFrame df = (dfs[0] as IDataFrame); if (df.Size.Width == width && df.Size.Height == height) { return; } float dfNewW = df.Size.Width; float sc = width / dfNewW; float dfNewH = height / sc; float yOffset = dfNewH - df.Size.Height; df.IsLocked = false; df.ApplySize(0f, yOffset); df.IsLocked = true; layout.Size = new System.Drawing.SizeF(layout.Size.Width, layout.Size.Height + yOffset); List <IElement> eles = layout.Elements; for (int i = 0; i < eles.Count; i++) { if (eles[i].Name == "标题" || eles[i].Name.Contains("Time") || eles[i].Name.Contains("Date")) { continue; } if (eles[i] is IBorder || eles[i] is IDataFrame) { continue; } if (eles[i] is ISizableElement) { (eles[i] as ISizableElement).ApplyLocation(0f, yOffset); } } }
/// <summary> /// 适用于原始分辨率 /// </summary> /// <param name="temp"></param> /// <param name="width"></param> /// <param name="height"></param> private void FitSizeToBmp(ILayoutTemplate temp, int width, int height) { ILayout layout = temp.Layout; IElement[] dfs = layout.QueryElements((e) => { return(e is IDataFrame); }); IDataFrame df = (dfs[0] as IDataFrame); if (df.Size.Width == width && df.Size.Height == height) { return; } float wP = width - df.Size.Width; float hP = height - df.Size.Height; df.IsLocked = false; df.ApplySize(wP, hP); df.IsLocked = true; layout.Size = new System.Drawing.SizeF(layout.Size.Width + wP, layout.Size.Height + hP); IBorder border = layout.GetBorder(); }
private void ChangeTemplateSize(ILayout layout, int width, int height) { IElement[] dfs = layout.QueryElements((e) => { return(e is IDataFrame); }); if (dfs == null || dfs.Length == 0) { return; } IDataFrame df = (dfs[0] as IDataFrame); if (df.Size.Width == width && df.Size.Height == height) { return; } float yOffset = height - df.Size.Height; float xOffset = width - df.Size.Width; df.IsLocked = false; df.ApplySize(xOffset, yOffset); df.IsLocked = true; layout.Size = new System.Drawing.SizeF(width, height); List <IElement> eles = layout.Elements; for (int i = 0; i < eles.Count; i++) { if (eles[i].Name == "标题" || eles[i].Name.Contains("Time") || eles[i].Name.Contains("Date")) { continue; } if (eles[i] is IBorder || eles[i] is IDataFrame) { continue; } if (eles[i] is ISizableElement) { (eles[i] as ISizableElement).ApplyLocation(xOffset, yOffset); } } }