public override void Draw(DrawProperty dp) { if (string.IsNullOrEmpty(Text) || string.IsNullOrWhiteSpace(Text)) { return; } var tf = new CanvasTextFormat { FontFamily = "Segoe UI", FontSize = 11.0f, FontStyle = FontStyle.Normal, FontStretch = FontStretch.Normal, FontWeight = FontWeights.Normal, WordWrapping = CanvasWordWrapping.NoWrap, Direction = CanvasTextDirection.LeftToRightThenTopToBottom, HorizontalAlignment = CanvasHorizontalAlignment.Left, LineSpacing = 2.0f, OpticalAlignment = CanvasOpticalAlignment.Default, Options = CanvasDrawTextOptions.Default, VerticalAlignment = CanvasVerticalAlignment.Top, VerticalGlyphOrientation = CanvasVerticalGlyphOrientation.Default, }; var ssz0 = GraphicUtil.MeasureString(dp.Canvas, Text, tf); var ssz = ssz0.Clone(); var sp = ScreenPos.From(Location.X.Cx, Location.Y.Cy); if (IsUpperPositionDefault) { sp += ScreenX.From(8); sp -= ScreenY.From(32); } else { sp -= ssz.Width; // adjust tooltip position sp += ScreenY.From(24); } if (sp.X < 0) { sp.X = ScreenX.From(0); } var sr = ScreenRect.From(sp, ssz + ScreenSize.From(12, 12)); sp += ScreenPos.From(6, 4); // padding dp.Graphics.FillRectangle(_(sr), Color.FromArgb(0xee, 0xdd, 0xdd, 0xdd)); dp.Graphics.DrawRectangle(_(sr), Color.FromArgb(0xff, 0x88, 0x88, 0x88)); dp.Graphics.DrawText(Text, sp + ssz0.Height, Color.FromArgb(0xff, 0x00, 0x00, 0x00), tf); }
/// <summary> /// Draw background /// </summary> /// <param name="dp"></param> public override void Draw(DrawProperty dp) { var spos = ScreenPos.From(Location); Rect = ScreenRect.From(spos, Size); var br = Rect.Clone(); br.RB = ScreenPos.From(br.R, br.B - 1); if (IsSelected) { dp.Graphics.FillRectangle(_(br), Color.FromArgb(96, 255, 255, 255)); } else { dp.Graphics.FillRectangle(_(br), Color.FromArgb(16, 255, 255, 255)); } }