Ich denke, Sie müssen Ihre eigene Kontrolle malen. Hier ist ein Beispiel für a Label
. Beachten Sie, dass es sich nur um eine Demo handelt.
public class CustomLabel : Label
{
public CustomLabel()
{
OutlineForeColor = Color.Green;
OutlineWidth = 2;
}
public Color OutlineForeColor { get; set; }
public float OutlineWidth { get; set; }
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.FillRectangle(new SolidBrush(BackColor), ClientRectangle);
using (GraphicsPath gp = new GraphicsPath())
using (Pen outline = new Pen(OutlineForeColor, OutlineWidth)
{ LineJoin = LineJoin.Round})
using(StringFormat sf = new StringFormat())
using(Brush foreBrush = new SolidBrush(ForeColor))
{
gp.AddString(Text, Font.FontFamily, (int)Font.Style,
Font.Size, ClientRectangle, sf);
e.Graphics.ScaleTransform(1.3f, 1.35f);
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
e.Graphics.DrawPath(outline, gp);
e.Graphics.FillPath(foreBrush, gp);
}
}
}
Sie können die Umrissfarbe durch ändern OutlineForeColor
Eigenschaft können die Umrissbreite über die ändern OutlineWidth
Eigentum. Wenn Sie diese Eigenschaften im Designer ändern, wird der Effekt nicht sofort angewendet (da es keinen Code gibt, ich möchte ihn kurz und einfach halten), der Effekt wird nur angewendet, wenn das Formular fokussiert ist.
Was Sie mehr hinzufügen können, ist die Zuordnung des TextAlign
zum Alignment
des StringFormat
(genannt sf
Im Code) können Sie auch einige Ereigniserhöhungsmethoden überschreiben, um mehr Kontrolle über das Erscheinungsbild zu erhöhen (z. B. um das zu ändern, um die zu ändern ForeColor
Wenn die Maus über dem Etikett ist ...). Sie können sogar einen Schatteneffekt und einen Glüheffekt erzeugen (es erfordert etwas viel mehr Code).