/// <summary> /// 构造函数 /// </summary> /// <param name="position"></param> /// <param name="dataFormat"></param> /// <param name="formula"></param> public Range(RangePosition position, string dataFormat, string formula, RANGETYPE type, string font, float fontsize, ReoGridVerAlign valign, ReoGridHorAlign halign) { _position = position; _formula = formula; _numberFormatArgs = getDataFormat(dataFormat); _type = type; Font = font; FontSize = fontsize; HAlign = halign; VAlign = valign; }
internal static string EncodeHorizontalAlign(ReoGridHorAlign halign) { switch (halign) { default: case ReoGridHorAlign.General: return "general"; case ReoGridHorAlign.Left: return "left"; case ReoGridHorAlign.Center: return "center"; case ReoGridHorAlign.Right: return "right"; case ReoGridHorAlign.DistributedIndent: return "distributed-indent"; } }
public void SetEditControlAlignment(ReoGridHorAlign align) { switch (align) { default: case ReoGridHorAlign.Left: this.editTextbox.TextAlign = HorizontalAlignment.Left; break; case ReoGridHorAlign.Center: this.editTextbox.TextAlign = HorizontalAlignment.Center; break; case ReoGridHorAlign.Right: this.editTextbox.TextAlign = HorizontalAlignment.Right; break; } }
internal static string EncodeHorizontalAlign(ReoGridHorAlign halign) { switch (halign) { default: case ReoGridHorAlign.General: return("general"); case ReoGridHorAlign.Left: return("left"); case ReoGridHorAlign.Center: return("center"); case ReoGridHorAlign.Right: return("right"); case ReoGridHorAlign.DistributedIndent: return("distributed-indent"); } }
//public void DrawText(string text, string fontName, float size, SolidColor color, Rectangle rect) //{ // if (color.IsTransparent) // { // return; // } // var font = this.resourceManager.GetFont(fontName, size, WFFontStyle.Regular); // if (font != null) // { // lock (this.sf) // { // sf.Alignment = StringAlignment.Near; // sf.LineAlignment = StringAlignment.Near; // g.DrawString(text, font, this.resourceManager.GetBrush(color), rect, sf); // } // } //} public void DrawText(string text, string fontName, float size, SolidColor color, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { if (color.IsTransparent) { return; } var font = this.resourceManager.GetFont(fontName, size, WFFontStyle.Regular); if (font != null) { using (var sf = new StringFormat(StringFormat.GenericTypographic) { FormatFlags = StringFormatFlags.MeasureTrailingSpaces | StringFormatFlags.FitBlackBox | StringFormatFlags.NoClip | StringFormatFlags.NoWrap }) { switch (halign) { default: sf.Alignment = StringAlignment.Near; break; case ReoGridHorAlign.Center: sf.Alignment = StringAlignment.Center; break; case ReoGridHorAlign.Right: sf.Alignment = StringAlignment.Far; break; } switch (valign) { default: sf.LineAlignment = StringAlignment.Near; break; case ReoGridVerAlign.Middle: sf.LineAlignment = StringAlignment.Center; break; case ReoGridVerAlign.Bottom: sf.LineAlignment = StringAlignment.Far; break; } g.DrawString(text, font, this.resourceManager.GetBrush(color), rect, sf); } } }
//public void DrawText(string text, string fontName, float size, SolidColor color, Rectangle rect) //{ // if (color.IsTransparent) // { // return; // } // var font = this.resourceManager.GetFont(fontName, size, WFFontStyle.Regular); // if (font != null) // { // lock (this.sf) // { // sf.Alignment = StringAlignment.Near; // sf.LineAlignment = StringAlignment.Near; // g.DrawString(text, font, this.resourceManager.GetBrush(color), rect, sf); // } // } //} public void DrawText(string text, string fontName, float size, SolidColor color, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { if (color.IsTransparent) { return; } var font = this.resourceManager.GetFont(fontName, size, WFFontStyle.Regular); if (font != null) { lock (this.sf) { switch (halign) { default: sf.Alignment = StringAlignment.Near; break; case ReoGridHorAlign.Center: sf.Alignment = StringAlignment.Center; break; case ReoGridHorAlign.Right: sf.Alignment = StringAlignment.Far; break; } switch (valign) { default: sf.LineAlignment = StringAlignment.Near; break; case ReoGridVerAlign.Middle: sf.LineAlignment = StringAlignment.Center; break; case ReoGridVerAlign.Bottom: sf.LineAlignment = StringAlignment.Far; break; } g.DrawString(text, font, this.resourceManager.GetBrush(color), rect, sf); } } }
public void DrawText(string text, string fontName, double size, SolidColor color, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { if (rect.Width > 0 && rect.Height > 0 && !string.IsNullOrEmpty(text)) { FormattedText ft = new FormattedText(text, System.Threading.Thread.CurrentThread.CurrentCulture, FlowDirection.LeftToRight, this.resourceManager.GetTypeface(fontName), size * PlatformUtility.GetDPI() / 72.0, this.resourceManager.GetBrush(color)); ft.MaxTextWidth = rect.Width; ft.MaxTextHeight = rect.Height; switch (halign) { default: break; case ReoGridHorAlign.Left: ft.TextAlignment = TextAlignment.Left; break; case ReoGridHorAlign.Center: ft.TextAlignment = TextAlignment.Center; break; case ReoGridHorAlign.Right: ft.TextAlignment = TextAlignment.Right; break; } switch (valign) { default: break; case ReoGridVerAlign.Middle: rect.Y += (rect.Height - ft.Height) / 2; break; case ReoGridVerAlign.Bottom: rect.Y += (rect.Height - ft.Height); break; } g.DrawText(ft, rect.Location); } }
public void LoadPage() { var sheet = grid.CurrentWorksheet; WorksheetRangeStyle style = sheet.GetRangeStyles(sheet.SelectionRange); if (style.TextWrapMode == TextWrapMode.WordBreak || style.TextWrapMode == TextWrapMode.BreakAll) { backupTextWrapState = CheckState.Checked; } else { backupTextWrapState = CheckState.Unchecked; } backupHorAlign = style.HAlign; backupVerAlign = style.VAlign; switch (style.HAlign) { case ReoGridHorAlign.General: cmbHorAlign.SelectedIndex = 0; break; case ReoGridHorAlign.Left: cmbHorAlign.SelectedIndex = 1; break; case ReoGridHorAlign.Center: cmbHorAlign.SelectedIndex = 2; break; case ReoGridHorAlign.Right: cmbHorAlign.SelectedIndex = 3; break; case ReoGridHorAlign.DistributedIndent: cmbHorAlign.SelectedIndex = 4; break; } switch (style.VAlign) { case ReoGridVerAlign.General: cmbVerAlign.SelectedIndex = 0; break; case ReoGridVerAlign.Top: cmbVerAlign.SelectedIndex = 1; break; case ReoGridVerAlign.Middle: cmbVerAlign.SelectedIndex = 2; break; case ReoGridVerAlign.Bottom: cmbVerAlign.SelectedIndex = 3; break; } chkWrapText.CheckState = backupTextWrapState; backupIndent = style.Indent; numIndent.Value = backupIndent; // cell text rotate var angle = style.RotationAngle; if (angle < -90) { angle = -90; } if (angle > 90) { angle = 90; } backupRotateAngle = angle; textRotateControl.Angle = (int)angle; numRotationAngle.Value = (int)angle; }
public WorksheetReusableAction CreateUpdateAction() { var style = new WorksheetRangeStyle(); ReoGridHorAlign halign = ReoGridHorAlign.General; ReoGridVerAlign valign = ReoGridVerAlign.Middle; switch (cmbHorAlign.SelectedIndex) { default: case 0: halign = ReoGridHorAlign.General; break; case 1: halign = ReoGridHorAlign.Left; break; case 2: halign = ReoGridHorAlign.Center; break; case 3: halign = ReoGridHorAlign.Right; break; case 4: halign = ReoGridHorAlign.DistributedIndent; break; } switch (cmbVerAlign.SelectedIndex) { default: case 0: valign = ReoGridVerAlign.General; break; case 1: valign = ReoGridVerAlign.Top; break; case 2: valign = ReoGridVerAlign.Middle; break; case 3: valign = ReoGridVerAlign.Bottom; break; } if (backupHorAlign != halign) { style.Flag |= PlainStyleFlag.HorizontalAlign; style.HAlign = halign; } if (backupVerAlign != valign) { style.Flag |= PlainStyleFlag.VerticalAlign; style.VAlign = valign; } if (backupTextWrapState != chkWrapText.CheckState) { style.Flag |= PlainStyleFlag.TextWrap; if (chkWrapText.Checked) { style.TextWrapMode = TextWrapMode.WordBreak; } else { style.TextWrapMode = TextWrapMode.NoWrap; } } if (backupIndent != numIndent.Value) { style.Flag |= PlainStyleFlag.Indent; style.Indent = (ushort)numIndent.Value; } if (backupRotateAngle != textRotateControl.Angle) { style.RotationAngle = textRotateControl.Angle; style.Flag |= PlainStyleFlag.RotationAngle; } return(style.Flag == PlainStyleFlag.None ? null : new SetRangeStyleAction(grid.CurrentWorksheet.SelectionRange, style)); }
public void LoadPage() { ReoGridRangeStyle style = grid.GetRangeStyle(grid.SelectionRange); if (style.TextWrapMode == TextWrapMode.WordBreak || style.TextWrapMode == TextWrapMode.BreakAll) { backupTextWrapState = CheckState.Checked; } else { backupTextWrapState = CheckState.Unchecked; } backupHorAlign = style.HAlign; backupVerAlign = style.VAlign; switch (style.HAlign) { case ReoGridHorAlign.General: cmbHorAlign.SelectedIndex = 0; break; case ReoGridHorAlign.Left: cmbHorAlign.SelectedIndex = 1; break; case ReoGridHorAlign.Center: cmbHorAlign.SelectedIndex = 2; break; case ReoGridHorAlign.Right: cmbHorAlign.SelectedIndex = 3; break; case ReoGridHorAlign.DistributedIndent: cmbHorAlign.SelectedIndex = 4; break; } switch (style.VAlign) { case ReoGridVerAlign.Top: cmbVerAlign.SelectedIndex = 0; break; case ReoGridVerAlign.Middle: cmbVerAlign.SelectedIndex = 1; break; case ReoGridVerAlign.Bottom: cmbVerAlign.SelectedIndex = 2; break; } chkWrapText.CheckState = backupTextWrapState; }
public void DrawText(string text, string fontName, RGFloat size, SolidColor color, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { throw new NotImplementedException(); }
internal void DrawText(string text, Paint p, Typeface font, float size, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { p.SetTypeface(font); p.TextSize = size; var measuredRect = new Rect(); p.GetTextBounds(text, 0, text.Length, measuredRect); float x = rect.Left, y = rect.Top; switch (halign) { case ReoGridHorAlign.General: case ReoGridHorAlign.Left: x = rect.Left; break; case ReoGridHorAlign.Center: x = rect.Left + (rect.Width - measuredRect.Width()) / 2; break; case ReoGridHorAlign.Right: x = rect.Right - measuredRect.Width(); break; } switch (valign) { case ReoGridVerAlign.Top: y = rect.Top + measuredRect.Height(); break; case ReoGridVerAlign.Middle: y = rect.Bottom - (rect.Height - measuredRect.Height()) / 2; break; case ReoGridVerAlign.General: case ReoGridVerAlign.Bottom: y = rect.Bottom; break; } this.canvas.DrawText(text, x, y, p); }
public void DrawText(string text, string fontName, float size, SolidColor color, Rectangle rect, ReoGridHorAlign halign, ReoGridVerAlign valign) { using (var p = new Paint()) { using (var font = Typeface.Create(fontName, Android.Graphics.TypefaceStyle.Normal)) { this.DrawText(text, p, font, size, rect, halign, valign); } } }
/// <summary> /// Render data label view. /// </summary> /// <param name="dc">Platform no-associated drawing context instance.</param> protected override void OnPaint(DrawingContext dc) { base.OnPaint(dc); var ai = AxisInfo; if (ai == null) { return; } var g = dc.Graphics; var ds = this.Chart.DataSource; var clientRect = this.ClientBounds; RGFloat maxWidth = 0; RGFloat maxHeight = 0; int dataCount = ds.CategoryCount; for (int i = 0; i < dataCount; i++) { var title = ds.GetCategoryName(i); if (!string.IsNullOrEmpty(title)) { var size = PlatformUtility.MeasureText(dc, title, FontName, FontSize, Drawing.Text.FontStyles.Regular); if (maxWidth < size.Width) { maxWidth = size.Width; } if (maxHeight < size.Height) { maxHeight = size.Height; } } } if (Orientation == AxisOrientation.Horizontal && maxWidth != 0) { RGFloat columnWidth = (clientRect.Width) / dataCount; var showableColumns = clientRect.Width / maxWidth; int showTitleStride = (int)Math.Ceiling(dataCount / showableColumns); if (showTitleStride < 1) { showTitleStride = 1; } ReoGridHorAlign halign = showTitleStride == 1 ? ReoGridHorAlign.Center : ReoGridHorAlign.Left; RGFloat stepX = clientRect.Width / dataCount; for (int i = 0; i < dataCount; i += showTitleStride) { string text = ds.GetCategoryName(i); if (!string.IsNullOrEmpty(text)) { var textRect = new Rectangle(columnWidth * i, 0, columnWidth * showTitleStride, clientRect.Height); g.DrawText(text, FontName, FontSize, ForeColor, textRect, halign, ReoGridVerAlign.Middle); } } } else if (Orientation == AxisOrientation.Vertical && maxHeight != 0) { RGFloat rowHeight = (clientRect.Height - 10) / dataCount; var showableRows = clientRect.Height / maxHeight; int showTitleStride = (int)Math.Ceiling(dataCount / showableRows); if (showTitleStride < 1) { showTitleStride = 1; } for (int i = 0; i < dataCount; i += showTitleStride) { string text = ds.GetCategoryName(i); if (!string.IsNullOrEmpty(text)) { var textRect = new Rectangle(0, rowHeight * i + 5, clientRect.Width, rowHeight); g.DrawText(text, FontName, FontSize, ForeColor, textRect, ReoGridHorAlign.Right, ReoGridVerAlign.Middle); } } } }
public void SetEditControlAlignment(ReoGridHorAlign align) { // TODO }