/// <summary> /// /// </summary> /// <param name="args"></param> private void OnCanvasPrePaint(NCanvasPaintEventArgs args) { NCanvas canvas = args.TargetNode as NCanvas; if (canvas == null) { return; } NPaintVisitor paintVisitor = args.PaintVisitor; NRectangle contentEge = canvas.GetContentEdge(); // create the text bounds double width = contentEge.Width * m_WidthPercentUpDown.Value / 100.0; double height = contentEge.Height * m_HeightPercentUpDown.Value / 100.0; NPoint center = contentEge.Center; NRectangle textBounds = new NRectangle(center.X - width / 2.0, center.Y - height / 2.0, width, height); // create the settings NPaintTextRectSettings settings = new NPaintTextRectSettings(); settings.SingleLine = m_SingleLineCheckBox.Checked; settings.WrapMode = (ENTextWrapMode)m_WrapModeCombo.SelectedIndex; settings.HorzAlign = (ENTextHorzAlign)m_HorizontalAlignmentCombo.SelectedIndex; settings.VertAlign = (ENTextVertAlign)m_VerticalAlignmentCombo.SelectedIndex; // create the text StringBuilder builder = new StringBuilder(); builder.AppendLine("Paint text at bounds [" + textBounds.X.ToString("0.") + ", " + textBounds.Y.ToString("0.") + "]"); builder.AppendLine("Horizontal Alignment [" + settings.HorzAlign.ToString() + "]"); builder.AppendLine("Vertical Alignment [" + settings.VertAlign.ToString() + "]"); // paint the bounding box paintVisitor.ClearStyles(); paintVisitor.SetFill(NColor.LightBlue); paintVisitor.PaintRectangle(textBounds); // init font and fill paintVisitor.SetFill(NColor.Black); NFont font = new NFont(NFontDescriptor.DefaultSansFamilyName, 10); NGraphicsPath path = font.GetTextPath(builder.ToString(), textBounds, this.OwnerDocument, ref settings); paintVisitor.PaintPath(path); }
/// <summary> /// /// </summary> /// <param name="args"></param> private void OnCanvasPrePaint(NCanvasPaintEventArgs args) { NCanvas canvas = args.TargetNode as NCanvas; if (canvas == null) { return; } NPaintVisitor paintVisitor = args.PaintVisitor; NRectangle contentEge = canvas.GetContentEdge(); // create the text bounds double width = contentEge.Width * 0.5; double height = contentEge.Height * 0.5; NPoint center = contentEge.Center; NRectangle textBounds = new NRectangle(center.X - width / 2.0, center.Y - height / 2.0, width, height); // create the settings NPaintTextRectSettings settings = new NPaintTextRectSettings(); settings.SingleLine = false; settings.WrapMode = ENTextWrapMode.WordWrap; settings.HorzAlign = ENTextHorzAlign.Center; settings.VertAlign = ENTextVertAlign.Center; // create the text StringBuilder builder = new StringBuilder(); builder.AppendLine("This text is displayed using Liberation Fonts!"); builder.AppendLine("distributed under the SIL Open Font License (OFL)"); // paint the bounding box paintVisitor.ClearStyles(); paintVisitor.SetFill(NColor.LightBlue); paintVisitor.PaintRectangle(textBounds); // init font and fill paintVisitor.SetFill(NColor.Black); ENFontStyle fontStyle = NFontFaceDescriptor.FontVariantToFontStyle(m_FontDescriptor.FontVariant); paintVisitor.SetFont(new NFont(m_FontDescriptor.FamilyName, 10, fontStyle)); // paint the text paintVisitor.PaintString(textBounds, builder.ToString(), ref settings); }
/// <summary> /// /// </summary> /// <param name="args"></param> private void OnCanvasPrePaint(NCanvasPaintEventArgs args) { NCanvas canvas = args.TargetNode as NCanvas; if (canvas == null) { return; } NPaintVisitor paintVisitor = args.PaintVisitor; NRectangle contentEge = canvas.GetContentEdge(); // create the settings NPaintTextRectSettings settings = new NPaintTextRectSettings(); settings.SingleLine = false; settings.WrapMode = ENTextWrapMode.WordWrap; settings.HorzAlign = ENTextHorzAlign.Left; settings.VertAlign = ENTextVertAlign.Top; // create the text string text = m_TextBox.Text; // calculate the text bounds the text bounds double resolution = canvas.OwnerDocument.GetEffectiveResolution(); NFont font = new NFont(NFontDescriptor.DefaultSansFamilyName, 10, ENFontStyle.Regular); NSize textSize = font.MeasureString(text.ToCharArray(), resolution, contentEge.Width, false, ref settings); NPoint center = contentEge.Center; NRectangle textBounds = new NRectangle( center.X - textSize.Width / 2.0, center.Y - textSize.Height / 2.0, textSize.Width, textSize.Height); // paint the bounding box paintVisitor.ClearStyles(); paintVisitor.SetFill(NColor.LightBlue); paintVisitor.PaintRectangle(textBounds); // init font and fill paintVisitor.SetFill(NColor.Black); paintVisitor.SetFont(font); // paint the text paintVisitor.PaintString(textBounds, text.ToCharArray(), ref settings); }
/// <summary> /// /// </summary> /// <param name="args"></param> private void OnCanvasPrePaint(NCanvasPaintEventArgs args) { NCanvas canvas = args.TargetNode as NCanvas; if (canvas == null) { return; } NPaintVisitor paintVisitor = args.PaintVisitor; NPaintTextPointSettings settings = new NPaintTextPointSettings(); settings.SingleLine = m_SingleLineCheckBox.Checked; settings.VertAlign = (ENTextVertAlign)m_VerticalAlignmentCombo.SelectedItem.Tag; settings.HorzAlign = (ENTextHorzAlign)m_HorizontalAlignmentCombo.SelectedItem.Tag; NPoint location = canvas.GetContentEdge().Center; // set styles paintVisitor.ClearStyles(); paintVisitor.SetFont(new NFont(NFontDescriptor.DefaultSansFamilyName, 10)); paintVisitor.SetFill(NColor.Black); // create text to paint StringBuilder builder = new StringBuilder(); builder.AppendLine("Paint text at location [" + location.X.ToString("0.") + ", " + location.Y.ToString("0.") + "]"); builder.AppendLine("Horizontal Alignment [" + settings.HorzAlign.ToString() + "]"); builder.AppendLine("Vertical Alignment [" + settings.VertAlign.ToString() + "]"); // paint string paintVisitor.PaintString(location, builder.ToString(), ref settings); // paint location double inflate = 5.0; paintVisitor.SetFill(NColor.Red); paintVisitor.PaintRectangle(new NRectangle(location.X - inflate, location.Y - inflate, inflate * 2.0, inflate * 2.0)); }