GraphicsPath.AddString vs Graphics.DrawString
От: Atilla Россия  
Дата: 25.11.02 05:52
Оценка:

        private void OnPaint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            GraphicsPath myPath = new GraphicsPath();
            string stringText = "Sample Text";
            FontFamily family = new FontFamily("Arial");
            int fontStyle = (int)FontStyle.Regular;
            int emSize =30;
            Point origin = new Point(20, 20);
            StringFormat format = StringFormat.GenericDefault;
            myPath.AddString(stringText,family,    fontStyle,emSize,
                origin,    format);
            // #0
            e.Graphics.FillPath(Brushes.Red, myPath);
            e.Graphics.DrawPath(Pens.Blue, myPath);

            // #1
            Font f=new Font(family, emSize);
            e.Graphics.DrawString(stringText, f ,Brushes.Black, new Point(20, 20), format);
        }


Может быть кто-нибудь подскажет, почему код #0 и #1 рисуют разные вещи и как бы так сделать, чтоб рисовало одинаково?

Причем, если строку
Font f=new Font(family, emSize);

заменить на
Font f=new Font(family, emSize,GraphicsUnit.Pixel);

получается почти то, что надо, но все равно не то

Кр-ть — с.т.
Re: GraphicsPath.AddString vs Graphics.DrawString
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 25.11.02 10:37
Оценка: 12 (1)
Здравствуйте, Atilla, Вы писали:

A>получается почти то, что надо, но все равно не то


В Петцольде написано, что это сделать нельзя. Нельзя получить одинаковое изображение при выводе шрифта через DrawString и через контур, т.к. используются разные алгоритмы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.