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); }
/// <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); }