private Font(SerializationInfo info, StreamingContext context) { Debug.Assert(info != null, "Didn't expect a null parameter"); string name = null; float size = -1f; FontStyle style = FontStyle.Regular; GraphicsUnit unit = GraphicsUnit.Point; SingleConverter sc = new SingleConverter(); SerializationInfoEnumerator sie = info.GetEnumerator(); for (; sie.MoveNext();) { if (String.Equals(sie.Name, "Name", StringComparison.OrdinalIgnoreCase)) { name = (string)sie.Value; } else if (String.Equals(sie.Name, "Size", StringComparison.OrdinalIgnoreCase)) { if (sie.Value is System.String) { size = (float)sc.ConvertFrom(sie.Value); } else { size = (float)sie.Value; } } else if (String.Compare(sie.Name, "Style", true, CultureInfo.InvariantCulture) == 0) { style = (FontStyle)sie.Value; } else if (String.Compare(sie.Name, "Unit", true, CultureInfo.InvariantCulture) == 0) { unit = (GraphicsUnit)sie.Value; } else { Debug.Fail("Unknown serialization item for font: " + sie.Name); } } Initialize(name, size, style, unit, SafeNativeMethods.DEFAULT_CHARSET, IsVerticalName(name)); }
private Font(SerializationInfo info, StreamingContext context) { string familyName = null; float emSize = -1f; FontStyle style = FontStyle.Regular; GraphicsUnit unit = GraphicsUnit.Point; SingleConverter singleConverter = new SingleConverter(); SerializationInfoEnumerator enumerator = info.GetEnumerator(); while (enumerator.MoveNext()) { if (string.Equals(enumerator.Name, "Name", StringComparison.OrdinalIgnoreCase)) { familyName = (string)enumerator.Value; } else if (string.Equals(enumerator.Name, "Size", StringComparison.OrdinalIgnoreCase)) { emSize = ((!(enumerator.Value is string)) ? ((float)enumerator.Value) : ((float)singleConverter.ConvertFrom(enumerator.Value))); } else if (string.Compare(enumerator.Name, "Style", ignoreCase: true, CultureInfo.InvariantCulture) == 0) { style = (FontStyle)enumerator.Value; } else if (string.Compare(enumerator.Name, "Unit", ignoreCase: true, CultureInfo.InvariantCulture) == 0) { unit = (GraphicsUnit)enumerator.Value; } } //Initialize(familyName, emSize, style, unit, 1, IsVerticalName(familyName)); if (unit == GraphicsUnit.Point) { emSize *= 1.333f; } nativeFont = new SKPaint() { Typeface = SKTypeface.Default, TextSize = emSize, Style = SKPaintStyle.Fill, TextAlign = SKTextAlign.Left, IsVerticalText = IsVerticalName(familyName), TextEncoding = SKTextEncoding.Utf8 }; }
private Font(SerializationInfo info, StreamingContext context) { this.gdiCharSet = 1; this.systemFontName = ""; string familyName = null; float emSize = -1f; FontStyle regular = FontStyle.Regular; GraphicsUnit point = GraphicsUnit.Point; SingleConverter converter = new SingleConverter(); SerializationInfoEnumerator enumerator = info.GetEnumerator(); while (enumerator.MoveNext()) { if (string.Equals(enumerator.Name, "Name", StringComparison.OrdinalIgnoreCase)) { familyName = (string)enumerator.Value; } else { if (string.Equals(enumerator.Name, "Size", StringComparison.OrdinalIgnoreCase)) { if (enumerator.Value is string) { emSize = (float)converter.ConvertFrom(enumerator.Value); } else { emSize = (float)enumerator.Value; } continue; } if (string.Compare(enumerator.Name, "Style", true, CultureInfo.InvariantCulture) == 0) { regular = (FontStyle)enumerator.Value; } else if (string.Compare(enumerator.Name, "Unit", true, CultureInfo.InvariantCulture) == 0) { point = (GraphicsUnit)enumerator.Value; } } } this.Initialize(familyName, emSize, regular, point, 1, IsVerticalName(familyName)); }
private Font(SerializationInfo info, StreamingContext context) { string familyName = null; float emSize = -1f; FontStyle style = FontStyle.Regular; GraphicsUnit unit = GraphicsUnit.Point; SingleConverter singleConverter = new SingleConverter(); SerializationInfoEnumerator enumerator = info.GetEnumerator(); while (enumerator.MoveNext()) { if (string.Equals(enumerator.Name, "Name", StringComparison.OrdinalIgnoreCase)) { familyName = (string)enumerator.Value; } else if (string.Equals(enumerator.Name, "Size", StringComparison.OrdinalIgnoreCase)) { emSize = ((!(enumerator.Value is string)) ? ((float)enumerator.Value) : ((float)singleConverter.ConvertFrom(enumerator.Value))); } else if (string.Compare(enumerator.Name, "Style", ignoreCase: true, CultureInfo.InvariantCulture) == 0) { style = (FontStyle)enumerator.Value; } else if (string.Compare(enumerator.Name, "Unit", ignoreCase: true, CultureInfo.InvariantCulture) == 0) { unit = (GraphicsUnit)enumerator.Value; } } Initialize(familyName, emSize, style, unit, 1, IsVerticalName(familyName)); }