internal void PerformPaint(VisualControlBase textBox, Graphics g, PI.RECT rect, SolidBrush backBrush)
        {
            g.SmoothingMode     = SmoothingMode.HighQuality;
            g.TextRenderingHint = TextRenderingHint.AntiAlias;
            // Define the string formatting requirements
            var stringFormat = new StringFormat
            {
                Trimming      = StringTrimming.None,
                LineAlignment = StringAlignment.Near
            };

            stringFormat.Alignment = GetContentShortTextH(PaletteState.Normal) switch
            {
                PaletteRelativeAlign.Near => textBox.RightToLeft == RightToLeft.Yes
                    ? StringAlignment.Far
                    : StringAlignment.Near,
                PaletteRelativeAlign.Far => textBox.RightToLeft == RightToLeft.Yes
                    ? StringAlignment.Near
                    : StringAlignment.Far,
                PaletteRelativeAlign.Center => StringAlignment.Center,
                _ => StringAlignment.Near
            };
            // This is most applicable to the multi-line controls
            stringFormat.LineAlignment = GetContentShortTextV(PaletteState.Normal) switch
            {
                PaletteRelativeAlign.Near => StringAlignment.Near,
                //PaletteRelativeAlign.Center => StringAlignment.Center,
                PaletteRelativeAlign.Far => StringAlignment.Far,
                _ => StringAlignment.Center
            };

            // Use the correct prefix setting
            stringFormat.HotkeyPrefix = HotkeyPrefix.None;

            Rectangle layoutRectangle = Rectangle.FromLTRB(rect.left, rect.top, rect.right, rect.bottom);

            // Draw entire client area in the background color
            g.FillRectangle(backBrush, layoutRectangle);

            var padding = GetContentPadding(PaletteState.Normal);

            if (!padding.Equals(CommonHelper.InheritPadding))
            {
                layoutRectangle.X      += padding.Left;
                layoutRectangle.Y      += padding.Top;
                layoutRectangle.Width  -= padding.Left + padding.Right;
                layoutRectangle.Height -= padding.Top + padding.Bottom;
            }


            using Font font            = GetContentShortTextNewFont(PaletteState.Normal);
            using SolidBrush foreBrush = new(GetContentShortTextColor1(PaletteState.Normal));
            var drawText = string.IsNullOrEmpty(CueHintText) ? textBox.Text : CueHintText;

            g.DrawString(drawText, font, foreBrush, layoutRectangle, stringFormat);
        }
Ejemplo n.º 2
0
 /// <summary>Sets the style of the control.</summary>
 /// <param name="control">The control to style.</param>
 /// <param name="style">The style.</param>
 public void SetStyle(VisualControlBase control, Styles style)
 {
     UpdateControl(control, style);
 }