Пользователь разместил текст на картинке в C#
Я пытаюсь создать инструмент, который позволит мне выбрать определенное место на картинке, чтобы поместить текст из текстового поля. Он должен быть в состоянии поместить несколько разных текстов в поле для картинок, а затем удастся удалить. Это мой текущий код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TextboxTool
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
textBox1.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Visible = true;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
Graphics G = Graphics.FromImage(pictureBox1.Image);
G.DrawString(textBox1.Text, new Font("Tahoma", 40), Brushes.Black, new Point(MousePosition.X, MousePosition.Y));
}
}
}
В настоящее время я могу ввести текст в текстовое поле, но не могу нарисовать строку в графическом окне и выбрать его местоположение. У меня есть кнопка, которая предназначена для подтверждения правильности написанного текста, а затем позволяет пользователю выбрать его местоположение. Кто-нибудь может помочь мне разобраться с этим кодом?
Спасибо-
1 ответ
MousePosition
свойство относительно экрана, а не PictureBox
,
Вы должны обращаться с MouseClick
событие и нарисовать строку в e.X
а также e.Y
,
Кроме того, вы можете позвонить pictureBox1.PointToClient
преобразовать экранные координаты в контрольно-относительные координаты.
Кроме того, вы должны распоряжаться Graphics
объект в using
заявление.
Наконец, я уверен, что вам нужно позвонить pictureBox1.Invalidate()
после изменения изображения, чтобы заставить его перекрасить.