Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: ширина и высота e.graphics.drawstring Добавлено: 09.09.12 10:01  

Автор вопроса:  mimino
Приветствую всех!
как реализовать такое?
печатаю текст -
e.Graphics.DrawString("AbcJgp", largeFont, Brushes.Black, 0, 0)

нужно этот текст растянуть. или просто изменить высоту и ширину не меняя размер шрифта.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #1
Добавлено: 09.09.12 23:40
рисуй на дополнительном битмапе, а затем его (битмап) уже отрисовывай с нужными искажениями на основном полотне

Ответить

Номер ответа: 2
Автор ответа:
 карлсон943



Вопросов: 0
Ответов: 2
 Профиль | | #2 Добавлено: 09.09.12 23:55
шось типу того зроби http://www.sendspace.com/file/lc3kf9

  1.  
  2. using System;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Text;
  6. using System.Windows.Forms;
  7.  
  8. namespace DrawString
  9. {
  10.  public partial class Form1 : Form
  11.  {
  12.   public Form1()
  13.   {
  14.    InitializeComponent();
  15.   }
  16.  
  17.   private void Form1_Load(object sender, EventArgs e)
  18.   {
  19.    textBox1.TextChanged += Redraw;
  20.    trackBar1.ValueChanged += Redraw;
  21.    trackBar2.ValueChanged += Redraw;
  22.   }
  23.  
  24.   private void Redraw(object sender, EventArgs e)
  25.   {
  26.    string text = textBox1.Text;
  27.    if (text.Length == 0) text = "...";
  28.    Graphics g = CreateGraphics();
  29.    StringFormat fmt = new StringFormat(StringFormatFlags.FitBlackBox | StringFormatFlags.NoWrap);
  30.    fmt.Trimming = StringTrimming.EllipsisCharacter;
  31.    SizeF s = g.MeasureString(text, this.Font, new SizeF((float)pictureBox1.Width, (float)pictureBox1.Height), fmt);
  32.    fmt.Dispose();
  33.    SizeF ratios = new SizeF((float)trackBar1.Value / s.Width, (float)trackBar2.Value / s.Height);
  34.    g = pictureBox1.CreateGraphics();
  35.    g.ResetTransform();
  36.    g.ScaleTransform(ratios.Width, ratios.Height);
  37.    g.Clear(SystemColors.Control);
  38.    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  39.    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
  40.    g.DrawString(text, this.Font, SystemBrushes.ControlText, new PointF(0f, 0f));
  41.   }
  42.  
  43.   private void trackBar1_ValueChanged(object sender, EventArgs e)
  44.   {
  45.    label3.Text = trackBar1.Value.ToString();
  46.   }
  47.  
  48.   private void trackBar2_ValueChanged(object sender, EventArgs e)
  49.   {
  50.    label4.Text = trackBar2.Value.ToString();
  51.   }
  52.  
  53.  }
  54. }

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам