private static bool StringFormatsEqual(StringFormat lhs, StringFormat rhs) { if (lhs == rhs) { return(true); } if (lhs.Alignment != rhs.Alignment) { return(false); } if (lhs.DigitSubstitutionLanguage != rhs.DigitSubstitutionLanguage) { return(false); } if (lhs.DigitSubstitutionMethod != rhs.DigitSubstitutionMethod) { return(false); } if (lhs.FormatFlags != rhs.FormatFlags) { return(false); } if (lhs.HotkeyPrefix != rhs.HotkeyPrefix) { return(false); } if (lhs.LineAlignment != rhs.LineAlignment) { return(false); } if (lhs.Trimming != rhs.Trimming) { return(false); } float flhs; var lhst = lhs.GetTabStops(out flhs); float frhs; var rhst = lhs.GetTabStops(out frhs); if (flhs != frhs) { return(false); } if (lhst.Length != rhst.Length) { return(false); } for (var i = 0; i < lhst.Length; i++) { if (lhst[i] != rhst[i]) { return(false); } } return(true); }
public void Clone_Complex() { using (StringFormat sf = new StringFormat()) { CharacterRange[] ranges = new CharacterRange [2]; ranges[0].First = 1; ranges[0].Length = 2; ranges[1].First = 3; ranges[1].Length = 4; sf.SetMeasurableCharacterRanges(ranges); float[] stops = new float [2]; stops [0] = 6.0f; stops [1] = 7.0f; sf.SetTabStops(5.0f, stops); using (StringFormat clone = (StringFormat)sf.Clone()) { CheckDefaults(clone); float first; float[] cloned_stops = clone.GetTabStops(out first); Assert.AreEqual(5.0f, first, "first"); Assert.AreEqual(6.0f, cloned_stops[0], "cloned_stops[0]"); Assert.AreEqual(7.0f, cloned_stops[1], "cloned_stops[1]"); } } }
public void TabsStops() { using (StringFormat smf = new StringFormat()) { float firstTabOffset; float[] tabsSrc = { 100, 200, 300, 400 }; float[] tabStops; smf.SetTabStops(200, tabsSrc); tabStops = smf.GetTabStops(out firstTabOffset); Assert.AreEqual(200, firstTabOffset); Assert.AreEqual(tabsSrc.Length, tabStops.Length); Assert.AreEqual(tabsSrc[0], tabStops[0]); Assert.AreEqual(tabsSrc[1], tabStops[1]); Assert.AreEqual(tabsSrc[2], tabStops[2]); Assert.AreEqual(tabsSrc[3], tabStops[3]); } }
internal void saveStringFormat(StringFormat sf) { if (sf == null) { writer.Write((int)0); return; } writer.Write((int)1); StringAlignment al; int dsl; StringDigitSubstitute dsm; StringFormatFlags sff; System.Drawing.Text.HotkeyPrefix hp; StringAlignment lal; StringTrimming tr; float fto; float[] ts; al = sf.Alignment; dsl = sf.DigitSubstitutionLanguage; dsm = sf.DigitSubstitutionMethod; sff = sf.FormatFlags; hp = sf.HotkeyPrefix; lal = sf.LineAlignment; tr = sf.Trimming; ts = sf.GetTabStops(out fto); writer.Write((int)al); writer.Write(dsl); writer.Write((int)dsm); writer.Write((int)sff); writer.Write((int)hp); writer.Write((int)lal); writer.Write((int)tr); writer.Write((double)fto); writer.Write(ts.GetLength(0)); foreach (float f in ts) { writer.Write((double)f); } }
// Snippet for: M:System.Drawing.StringFormat.GetTabStops(System.Single@) // <snippet1> public void GetSetTabStopsExample1(PaintEventArgs e) { Graphics g = e.Graphics; // Tools used for drawing, painting. Pen redPen = new Pen(Color.FromArgb(255, 255, 0, 0)); SolidBrush blueBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255)); // Layout and format for text. Font myFont = new Font("Times New Roman", 12); StringFormat myStringFormat = new StringFormat(); Rectangle enclosingRectangle = new Rectangle(20, 20, 500, 100); float[] tabStops = { 150.0f, 100.0f, 100.0f }; // Text with tabbed columns. string myString = "Name\tTab 1\tTab 2\tTab 3\nGeorge Brown\tOne\tTwo\tThree"; // Set the tab stops, paint the text specified by myString, and draw the // rectangle that encloses the text. myStringFormat.SetTabStops(0.0f, tabStops); g.DrawString(myString, myFont, blueBrush, enclosingRectangle, myStringFormat); g.DrawRectangle(redPen, enclosingRectangle); // Get the tab stops. float firstTabOffset; float[] tabStopsObtained = myStringFormat.GetTabStops(out firstTabOffset); for (int j = 0; j < tabStopsObtained.Length; j++) { // Inspect or use the value in tabStopsObtained[j]. Console.WriteLine("\n Tab stop {0} = {1}", j, tabStopsObtained[j]); } }
/// <summary> /// Gets a TextFormatFlags value from the specified StringFormat object. /// </summary> private static TextFormatFlags GetTextFormatFlagsFromStringFormat(StringFormat format) { TextFormatFlags glyphOverhangPadding = TextFormatFlags.GlyphOverhangPadding; if (format != null) { float num; if (format.GetTabStops(out num) != null) { glyphOverhangPadding |= TextFormatFlags.ExpandTabs; } if ((format.FormatFlags & StringFormatFlags.DirectionRightToLeft) != 0) { glyphOverhangPadding |= TextFormatFlags.RightToLeft; } if ((format.FormatFlags & StringFormatFlags.FitBlackBox) != 0) { glyphOverhangPadding |= TextFormatFlags.NoPadding; } if ((format.FormatFlags & StringFormatFlags.NoWrap) != 0) { glyphOverhangPadding |= TextFormatFlags.SingleLine; } else { glyphOverhangPadding |= TextFormatFlags.WordBreak; } if ((format.FormatFlags & StringFormatFlags.LineLimit) != 0) { glyphOverhangPadding |= TextFormatFlags.TextBoxControl; } switch (format.Alignment) { case StringAlignment.Center: glyphOverhangPadding |= TextFormatFlags.HorizontalCenter; break; case StringAlignment.Far: glyphOverhangPadding |= TextFormatFlags.Right; break; default: //glyphOverhangPadding = glyphOverhangPadding; break; } switch (format.LineAlignment) { case StringAlignment.Center: glyphOverhangPadding |= TextFormatFlags.VerticalCenter; break; case StringAlignment.Far: glyphOverhangPadding |= TextFormatFlags.Bottom; break; default: //glyphOverhangPadding = glyphOverhangPadding; break; } switch (format.Trimming) { case StringTrimming.EllipsisCharacter: glyphOverhangPadding |= TextFormatFlags.EndEllipsis | TextFormatFlags.TextBoxControl; break; case StringTrimming.EllipsisWord: glyphOverhangPadding |= TextFormatFlags.EndEllipsis | TextFormatFlags.TextBoxControl; break; case StringTrimming.EllipsisPath: glyphOverhangPadding |= TextFormatFlags.PathEllipsis | TextFormatFlags.TextBoxControl; break; default: if ((format.FormatFlags & StringFormatFlags.NoClip) != 0) { glyphOverhangPadding |= TextFormatFlags.NoClipping; } break; } switch (format.HotkeyPrefix) { case HotkeyPrefix.None: return(glyphOverhangPadding | TextFormatFlags.NoPrefix); case HotkeyPrefix.Show: return(glyphOverhangPadding); case HotkeyPrefix.Hide: return(glyphOverhangPadding | TextFormatFlags.HidePrefix); } } return(glyphOverhangPadding); }