2013-07-25 6 views
1

Есть ли способ набрать/отредактировать текст на PictureBox или Panel? Когда пользователь нажимает где-то на PictureBox, отображается каретка и позволяет пользователю вводить текст. Я делаю программу о графике. Я хочу, чтобы это как текстовый инструмент в MS Paint или Photoshop. Но я понятия не имею. У кого-то есть опыт в этом, пожалуйста, дайте мне руководство.Графика - Введите текст на картинке

+0

Это неясно. WPF? WinForms? Вы хотите, чтобы они могли писать текст в любом месте, которое они выбирают в окне? Должны ли они иметь возможность выбирать цвет/размер шрифта? что ты уже испробовал? Что не работает? Более подробная информация. –

+0

@GrantWinney, пожалуйста, еще раз проверьте вопрос, я только что отредактировал его. Не беспокойтесь о цвете и размере шрифта. Думаю, я смогу справиться с этим, когда текст будет добавлен. Моя проблема заключается в типе текста на картинке, как в текстовом поле. Мы можем выбрать, переместить каретку ... – SmartGoat

ответ

4

Вот код, который вы, возможно, может работать на, чтобы заставить его работать на вас:

private void image_Click(object sender, EventArgs e) 
    { 
     float y = (float)Cursor.Position.Y -50; 
     float x = (float)Cursor.Position.X -50; 

     Bitmap b = new Bitmap(@"C:\Users\Dozer789\Downloads\notepad-png.bmp"); 

     RectangleF r = new RectangleF(x, y, 0, 0); 

     Graphics g = Graphics.FromImage(b); 

     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; 
     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
     g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
     g.DrawString("yourText", new Font("Thaoma", 8), Brushes.Black, r); 

     g.Flush(); 

     image.Image = b; 
    } 

Вам придется редактировать и добавлять некоторые вещи, но это, по крайней мере начало.

Надеюсь, это сработает !!

+0

Это для рисования текста в коде. Я уже это знаю. Но то, что мне нужно, это интерфейс, пользователь может взаимодействовать. Нажмите где-нибудь, а затем введите somethings. Подобно тому, как вы добавляете некоторые тексты в MS Paint. Он имеет каретку, вы можете перемещать каретку или выбирать текст. – SmartGoat

+0

Последнее редактирование, которое я сделал, думаю, будет работать. – Dozer789

+0

g.DrawString («yourText», новый шрифт («Thaoma», 8), Brushes.Black, r); «yourText» неизвестен во время компиляции. Это проблема. – SmartGoat

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