Groups | Blog | Home
all groups > dotnet compact framework > april 2008 >

dotnet compact framework : Bordered Text


andrerus@gmail.com
4/14/2008 8:14:24 AM
Hi, does anybody know a way to draw a bordered text (which each
character surrounded by a contour)?

Fabien
4/14/2008 8:33:04 AM
Hi,

You have to create your own component inherits from label and override
the OnPaint method.

BR

Fabien Decret (Device Application Development MVP)
Windows Embedded Consultant

ADENEO (ADESET)
http://www.adeneo.adetelgroup.com/ | http://fabdecret.blogspot.com/


[quoted text, click to view]
andrerus@gmail.com
4/14/2008 9:19:57 AM
[quoted text, click to view]

Well, but my question is a bit more technical:
To paint a string I usually use the Graphics.DrawString method,
If I use a traditional font, I'll obtain a full filled text (without
contour)
If I use a bordered font, I'll obtain an empty text (with the only
contour painted).
I thought to a rough solution "paint a first filled string and over it
the same string using a bordered font", but if fonts are different
I'll obtain an illegible text.
So there is any other solution to easy paint a string (or a single
char) with a specified fill color and a different border color?

Thanks.

dbgrick
4/14/2008 10:46:01 AM
Per Fabien's recommendation, create a control and inherit from Control or
Label, override the OnPaint method and then do the drawing yourself. Here is
an example:

protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;

Rectange currentRectangle = new Rectangle(0, 0. base.Width, base.Height);

g.FillRectangle(new SolidBrush(base.BackColor), currentRectangle);

g.DrawString(base.Text, base.Font, 3f, ((float)base.Height -
stringSize.Height) / 2f);

currentRectangle = new Rectangle(1, 1. base.Width - 2, base.Height - 2);

g.DrawRectangle(new Pen(Color.Black, 1f), currentRectangle);
}

And you've drawn a label with a border.

Regards,
Rick D.

[quoted text, click to view]
andrerus@gmail.com
4/15/2008 9:44:21 AM
[quoted text, click to view]

I haven't tested it, but reading the code what it seems to produce is
a string inside a rectangle, isn't it? What I want is instead a string
in which each character is surrounded by a contour that follows its
shape (not a rectangle).

Thanks,
AddThis Social Bookmark Button