2013-11-28 4 views
0

Можно ли растянуть шрифт в WinForms? То, что я пытаюсь выполнить, - растянуть шрифт до максимальной доступной ширины RichTextBox. Это должно быть что-то вроде viewbox в WPF. Моя цель - растянуть шрифт НЕ ИЗМЕНИТЬ его. Все шрифты, которыми я пользуюсь, это шрифты с интервалом в один интервал.Можно ли растянуть шрифт в WinForms

+0

AFAIK это ** не возможно **. Что вы можете сделать, так это ** mimic ** (более или менее), что ** WPF ** делает: ** нарисуйте rtb в растровое изображение **, затем нарисуйте растровое изображение растянутым. –

+0

Graphics.ScaleTransform + Graphics.DrawString. Но в RichTextBox это не так, как в случае с другими элементами управления, которые фактически реализованы Windows, они выполняют собственный рендеринг текста. –

ответ

0

да это можно сделать

private void button1_Click(object sender, EventArgs e) 
    { 
     Graphics gr = richTextBox1.CreateGraphics(); 
     Brush brush = new SolidBrush(Color.Red); 
     float x = 0.0F; 
     float y = 0.0F; 
     float width = 200.0F; 
     float height = 50.0F; 
     Font drawFont = new Font("Arial", 18); 

     RectangleF drawRect = new RectangleF(x, y, width, height); 
     //here you can shrink as you want 
     gr.ScaleTransform(3, 1); 
     gr.DrawString("your text", drawFont, brush, drawRect); 

    } 

надеюсь, что эта помощь

+0

Извините, он создает только растровое изображение RichTextBox. Я знаю об этом решении, но используя это, вы теряете возможность работать с текстом для ex. выбрав его или выполнив поиск. Я ищу что-то вроде viewbox в WPF. Возможно, сторонний компонент для WinForms. – user2861648

Смежные вопросы