private void CreateLayout() { if (layout != null) { layout.Dispose(); } layout = PangoUtil.CreateLayout(this, null); if (use_markup) { layout.Markup = brokentext != null ? brokentext : (text ?? string.Empty); } else { layout.Text = brokentext != null ? brokentext : (text ?? string.Empty); } layout.Trimming = wrapMode; if (width >= 0) { layout.Width = width; } else { layout.Width = -1; } QueueForReallocate(); }
public TextLayout GetLayout() { if (mAlignmentChanged) { if (mLayout != null) { mLayout.TextAlignment = mHorizontalAlignment; mLayout.ParagraphAlignment = mVerticalAlignment; } mAlignmentChanged = false; } if (mChanged == false) { return(mLayout); } var font = Fonts.Cache[mFontFamily, mFontSize, mWeight]; if (mLayout != null) { mLayout.Dispose(); } mLayout = new TextLayout(mFactory, mText, font, mSize.Width, mSize.Height) { TextAlignment = mHorizontalAlignment, ParagraphAlignment = mVerticalAlignment, }; mChanged = false; mAlignmentChanged = false; return(mLayout); }
public override void UnloadContent() { if (textLayout != null) { textLayout.Dispose(); } }
public void DrawValueInCircle() { float offset = calculateOffset(planet.population); Vector2 temp = new Vector2(offset, 12.0f); position = planet.position - temp; textLayout.Dispose(); textLayout = new TextLayout(planet.game.factoryWrite, planet.population.ToString(), textFormat, 36.0f, 24.0f); planet.game.target.DrawTextLayout(position, textLayout, brush); //planet.game.target.DrawRectangle(new RectangleF(position.X, position.Y, 36.0f, 24.0f), brush); }
/// <summary> /// Do not buffer text if you draw i.e. FPS. Use buffer for player names, rank.... /// </summary> /// <param name="text">The text.</param> /// <param name="font">The font.</param> /// <param name="brush">The brush.</param> /// <param name="x">The x.</param> /// <param name="y">The y.</param> /// <param name="bufferText">if set to <c>true</c> [buffer text].</param> public void DrawText(string text, int font, int brush, int x, int y, bool bufferText = true) { if (bufferText) { var bufferPos = -1; for (var i = 0; i < _layoutContainer.Count; i++) { if ((_layoutContainer[i].Text.Length != text.Length) || (_layoutContainer[i].Text != text)) { continue; } bufferPos = i; break; } if (bufferPos == -1) { _layoutContainer.Add(new TextLayoutBuffer(text, new TextLayout(_fontFactory, text, _fontContainer[font], float.MaxValue, float.MaxValue))); bufferPos = _layoutContainer.Count - 1; } _device.DrawTextLayout(new RawVector2(x, y), _layoutContainer[bufferPos].TextLayout, _brushContainer[brush], DrawTextOptions.NoSnap); } else { var layout = new TextLayout(_fontFactory, text, _fontContainer[font], float.MaxValue, float.MaxValue); _device.DrawTextLayout(new RawVector2(x, y), layout, _brushContainer[brush]); layout.Dispose(); } }
public void Draw() { brush = ship.game.brushes[ship.team]; nose = ship.position + 15 * ship.direction; middle = ship.position; firstWing = ship.position - 7 * ship.direction - 7 * normal; secondWing = ship.position - 7 * ship.direction + 7 * normal; ship.game.target.DrawLine(nose, firstWing, brush); ship.game.target.DrawLine(nose, secondWing, brush); ship.game.target.DrawLine(middle, firstWing, brush); ship.game.target.DrawLine(middle, secondWing, brush); // text textLayout.Dispose(); textLayout = new TextLayout(ship.game.factoryWrite, ship.population.ToString(), textFormat, 36.0f, 24.0f); ship.game.target.DrawTextLayout(ship.position + new Vector2(5.0f, -20.0f), textLayout, brush); }
/// <summary> /// Do not buffer text if you draw i.e. FPS. Use buffer for player names, rank.... /// </summary> public void DrawText(string text, int font, int brush, int x, int y, bool bufferText = true) { if (bufferText) { int bufferPos = -1; for (int i = 0; i < this.LayoutContainer.Count; i++) { if (this.LayoutContainer[i].Text.Length == text.Length && this.LayoutContainer[i].Text == text) { bufferPos = i; break; } } if (bufferPos == -1) { this.LayoutContainer.Add(new LayoutBuffer(text, new TextLayout(this.fontFactory, text, this.FontContainer[font], float.MaxValue, float.MaxValue))); bufferPos = this.LayoutContainer.Count - 1; } device.DrawTextLayout(new Vector2(x, y), this.LayoutContainer[bufferPos].TextLayout, this.BrushContainer[brush], DrawTextOptions.NoSnap); } else { TextLayout layout = new TextLayout(this.fontFactory, text, this.FontContainer[font], float.MaxValue, float.MaxValue); device.DrawTextLayout(new Vector2(x, y), layout, this.BrushContainer[brush]); layout.Dispose(); } }
protected override void DrawCurrentTimeString(string s, float x, float y) { var tl = new TextLayout(_fdw, s, formatNear, Width, Height); _rt.DrawTextLayout(new Vector2(x - Radius + Width / 2, 0), tl, brushRed, DrawTextOptions.None); tl.Dispose(); }
protected override void DrawClockString(string s, float x, float y) { var tl = new TextLayout(_fdw, s, formatCenter, Width, Height); _rt.DrawTextLayout(new Vector2(Width / 2 - x, Height / 2 - y), tl, brush, DrawTextOptions.None); tl.Dispose(); }
protected override void OnCleanUpDeviceIndependentResources() { base.OnCleanUpDeviceIndependentResources(); _textAnalyzer.Dispose(); _textLayout.Dispose(); _textFormat.Dispose(); }
public override void Dispose() { Click = null; TextChanged = null; text?.Dispose(); base.Dispose(); }
public static Tuple <TextLayout, TextFormat> RebaseText(TextLayout Tl, TextFormat Tf, string Text) { Tf.Dispose(); var tfNew = new TextFormat( Base.DWFactory, Tl.FontFamilyName, Tl.FontCollection, Tl.FontWeight, Tl.FontStyle, Tl.FontStretch, Tl.FontSize, Tl.LocaleName ) { TextAlignment = Tl.TextAlignment, ParagraphAlignment = Tl.ParagraphAlignment, FlowDirection = Tl.FlowDirection, IncrementalTabStop = Tl.IncrementalTabStop, ReadingDirection = Tl.ReadingDirection, WordWrapping = Tl.WordWrapping }; var tlNew = new TextLayout( Base.DWFactory, Text, tfNew, Tl.MaxWidth, Tl.MaxHeight); Tl.Dispose(); return(Tuple.Create(tlNew, tfNew)); }
protected override void Dispose(bool disposing) { layout.Dispose(); informLayout.Dispose(); base.Dispose(disposing); }
public void Dispose() { try { textLayout.Dispose(); } catch { } }
public void DrawText(float x, float y, string text, Color color) { this.brush.Color = new RawColor4(color.R, color.G, color.B, color.A / 255.0f); var layout = new TextLayout(this.fontFactory, text, this.font, float.MaxValue, float.MaxValue); this.device.DrawTextLayout(new RawVector2(x, y), layout, this.brush); layout.Dispose(); }
public static float MeasureStringWidth(string str, TextFormat format) { TextLayout l = new TextLayout(defaultWriteFactory, str, format, float.MaxValue, float.MaxValue); float w = l.Metrics.Width; l.Dispose(); return(w); }
public static float MeasureStringHeight(string str, TextFormat format) { TextLayout l = new TextLayout(defaultWriteFactory, str, format, float.MaxValue, float.MaxValue); float h = l.Metrics.Height; l.Dispose(); return(h); }
protected override void Dispose(bool disposing) { if (disposing) { layout.Dispose(); } base.Dispose(disposing); }
public static void DrawSimpleTip(this MusicCanvasControl canvas, string text, RawVector2?pos = new RawVector2?()) { if (MusicCanvasControl.EnableControlTip && canvas.IsAltKeyPressed()) { Trimming trimming; InlineObject obj2; if (!pos.HasValue) { Point point = canvas.PointToClient(Control.MousePosition); pos = new RawVector2((float)(point.X + 0x18), (float)(point.Y - 0x18)); } RenderTarget renderTarget = canvas.RenderTarget2D; SharpDX.DirectWrite.Factory factoryDWrite = canvas.FactoryDWrite; TextFormat textFormat = new TextFormat(factoryDWrite, "微软雅黑", FontWeight.Bold, SharpDX.DirectWrite.FontStyle.Normal, FontStretch.Normal, 12f); textFormat.GetTrimming(out trimming, out obj2); trimming.Granularity = TrimmingGranularity.Word; textFormat.SetTrimming(trimming, obj2); textFormat.TextAlignment = TextAlignment.Center; textFormat.ParagraphAlignment = ParagraphAlignment.Center; TextLayout layout = new TextLayout(factoryDWrite, text, textFormat, 1920f, 1080f); textFormat.TextAlignment = TextAlignment.Leading; textFormat.ParagraphAlignment = ParagraphAlignment.Far; TextLayout textLayout = new TextLayout(factoryDWrite, text, textFormat, layout.Metrics.Width, layout.Metrics.Height); layout.Dispose(); RawVector2 origin = new RawVector2(pos.Value.X, pos.Value.Y); switch (textFormat.TextAlignment) { case TextAlignment.Trailing: origin.X = pos.Value.X - textLayout.Metrics.Width; break; case TextAlignment.Center: case TextAlignment.Justified: origin.X = pos.Value.X - (textLayout.Metrics.Width / 2f); break; } switch (textFormat.ParagraphAlignment) { case ParagraphAlignment.Far: origin.Y = pos.Value.Y - textLayout.Metrics.Height; break; case ParagraphAlignment.Center: origin.Y = pos.Value.Y - (textLayout.Metrics.Height / 2f); break; } origin.X += 4f; origin.Y += 4f; textFormat.Dispose(); RawRectangleF rectF = new RawRectangleF(pos.Value.X, pos.Value.Y - textLayout.Metrics.Height, (pos.Value.X + textLayout.Metrics.Width) + 8f, pos.Value.Y + 8f); canvas.FillRoundedRectangle(rectF, 4f, Color.FromArgb(150, 0x1f, 0x1f, 0x22)); canvas.DrawRoundedRectangle(rectF, 4f, Color.FromArgb(150, 0xe9, 0xe9, 0xe9), 2f); SolidColorBrush defaultForegroundBrush = new SolidColorBrush(renderTarget, Color.FromArgb(250, Color.DarkGray).ToRawColor4(1f)); renderTarget.DrawTextLayout(origin, textLayout, defaultForegroundBrush, DrawTextOptions.Clip); defaultForegroundBrush.Dispose(); textLayout.Dispose(); } }
public void Dispose() { brush.Dispose(); brushRed.Dispose(); _tyNear.Dispose(); _tyCenter.Dispose(); formatNear.Dispose(); formatCenter.Dispose(); }
public static RectangleF StringBoundingBox(string str, TextFormat format) { TextLayout l = new TextLayout(defaultWriteFactory, str, format, float.MaxValue, float.MaxValue); float h = l.Metrics.Height; float w = l.Metrics.Width; l.Dispose(); return(new RectangleF(0, 0, w, h)); }
public override void Dispose() { if (TextLayout != null) { TextLayout.Dispose(); } TextLayout = null; base.Dispose(); }
protected override void OnCleanUpDeviceIndependentResources() { base.OnCleanUpDeviceIndependentResources(); _textFormat.Dispose(); _textLayout.Dispose(); _blueColorDrawingEffect.Dispose(); _redColorDrawingEffect.Dispose(); _greenColorDrawingEffect.Dispose(); }
public static System.Drawing.SizeF MeasureString(string str, TextFormat format) { TextLayout l = new TextLayout(defaultWriteFactory, str, format, float.MaxValue, float.MaxValue); float h = l.Metrics.Height; float w = l.Metrics.Width; l.Dispose(); return(new System.Drawing.SizeF(w, h)); }
private void DrawTextCenter(int X, int Y, int W, int H, string text, Color color) { solidColorBrush.Color = color; TextLayout layout = new TextLayout(fontFactory, text, fontSmall, W, H); layout.TextAlignment = TextAlignment.Center; device.DrawTextLayout(new Vector2(X, Y), layout, solidColorBrush); layout.Dispose(); }
internal protected override void OptionsChanged() { var layout = new TextLayout(Editor); layout.Font = Editor.Options.Font; layout.Text = string.Format("0{0:X}", Data.Length) + "_"; // int height; width = layout.GetSize().Width; layout.Dispose(); }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (layout != null) { layout.Dispose(); layout = null; } }
internal protected override void OptionsChanged() { var layout = new TextLayout(Editor); layout.Font = Editor.Options.Font; layout.Text = "."; // int height; charWidth = layout.GetSize().Width; layout.Dispose(); }
public void DrawText(string text, float x, float y, float fontSize, Direct2DFont font, Direct2DBrush brush) { var layout = new TextLayout(_fontFactory, text, font, float.MaxValue, float.MaxValue); layout.SetFontSize(fontSize, new TextRange(0, text.Length)); _device.DrawTextLayout(new RawVector2(x, y), layout, brush, DrawTextOptions.NoSnap); layout.Dispose(); }
public void Dispose() { Utilities.Dispose(ref _Factory2D); Utilities.Dispose(ref _FactoryDWrite); Utilities.Dispose(ref _RenderTarget2D); Utilities.Dispose(ref _SceneColorBrush); Utilities.Dispose(ref _TextFormat); Utilities.Dispose(ref _TextLayout); _TextLayout?.Dispose(); }
/// <summary> /// Measures the text. /// </summary> /// <param name="text">The text.</param> /// <param name="fontFamily">The font family.</param> /// <param name="fontSize">Size of the font.</param> /// <param name="fontWeight">The font weight.</param> /// <returns>The text size.</returns> public OxySize MeasureText(string text, string fontFamily, double fontSize, double fontWeight) { if (string.IsNullOrWhiteSpace(fontFamily)) { fontFamily = "Arial"; } if (text == null) { text = string.Empty; } var format = new TextFormat(this.dwtFactory, fontFamily, GetFontWeight(fontWeight), FontStyle.Normal, FontStretch.Normal, (float)fontSize); var layout = new TextLayout(this.dwtFactory, text, format, 1000f, 1000f); var res = new OxySize(layout.Metrics.Width, layout.Metrics.Height); format.Dispose(); layout.Dispose(); return res; }