/// <summary>文字绘制 /// </summary> /// <param name="objText"></param> public void DrawString(clssText objText) { string strText = ""; float dX, dY; try { //绘制对象 if (p_objGraph == null) { return; } //绘制 strText = objText.p_Text; dX = (float)objText.p_Position.p_X; dY = (float)objText.p_Position.p_Y; p_objGraph.DrawString(strText, objText.p_FontStyle.p_Font, new SolidBrush(objText.p_FontStyle.p_Color), dX, dY, objText.p_FontStyle.p_Format); } catch { throw; } }
/// <summary>生成绘制文字信息,但不绘制(字符串组位置循环间隔制定XY值,支持自使用字符串字体对应高宽) /// </summary> /// <param name="lstStrings">字符串组</param> /// <param name="objPoint">起始位置</param> /// <param name="dDeltaX">X间隔值</param> /// <param name="dDeltaY">Y间隔值</param> /// <param name="bAuto_Position">是否在XY基础上自动增加显示文字所需的最大高宽度值,以实现自适应</param> /// <returns></returns> public List <clssText> GetData_Texts(List <string> lstStrings, clss_Point objPoint, double dDeltaX, double dDeltaY, bool bAuto_Position) { List <clssText> lstTexts = new List <clssText>(); clss_Font_Style objFontStyle = this.p_FontStyle; double dLeft = 0, dTop = 0; int nWidth = 0, nHeight = 0; try { //计算长度和高度 clsFont.Instance().Compute_CtrlMaxWidth(lstStrings.ToArray(), objFontStyle.p_Font, this.p_objGraph, ref nWidth, ref nHeight); //依次生成 for (int i = 0; i < lstStrings.Count; i++) { clssText objText = new clssText(); objText.p_Text = lstStrings[i]; //信息设置 objText.p_FontStyle = new clss_Font_Style(); objText.p_FontStyle.p_Font = objFontStyle.p_Font; objText.p_FontStyle.p_Color = objFontStyle.p_Color; objText.p_FontStyle.p_Format = objFontStyle.p_Format; //位置信息 if (bAuto_Position) { //自动调整合适字体起始位置,依据字体样式 dTop = objPoint.p_Y + (nHeight + dDeltaY) * (i); dLeft = objPoint.p_X + (nWidth + dDeltaX) * (i); } else { dTop = objPoint.p_Y + (dDeltaY) * (i); dLeft = objPoint.p_X + (dDeltaX) * (i); } objText.p_Position = new clss_Point(objPoint.p_X, dTop, 0); lstTexts.Add(objText); } //返回 return(lstTexts); } catch { throw; } }