Пример #1
0
        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);
        }
Пример #2
0
        /// <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));
            }
        }