Вставить изображение в положение курсора в поле Rich Text
Я знаю, что есть разные вопросы, подобные этому, но я спрашиваю, потому что я не мог понять все ответы. у меня естьRichTextBox
и я хочу, чтобы пользователь мог вставить изображение в текущей позиции курсора.
Я пытался использоватьClipboard
установить изображение, а затем вставить его в расширенное текстовое поле. Это работает, но мне сказали, что это плохая практика, так как он изменяет данные на панели управления без уведомления пользователя.
Это то, что я пробовал
private bool CheckIfImage(string filename)
{
if (filename.EndsWith(".jpeg")) { return true; }
else if (filename.EndsWith(".jpg")) { return true; }
else if (filename.EndsWith(".png")) { return true; }
else if (filename.EndsWith(".ico")) { return true; }
else if (filename.EndsWith(".gif")) { return true; }
else if (filename.EndsWith(".bmp")) { return true; }
else if (filename.EndsWith(".emp")) { return true; }
else if (filename.EndsWith(".wmf")) { return true; }
else if (filename.EndsWith(".tiff")) { return true; }
else { return false; }
}
private void openFileDialog2_FileOk(object sender, CancelEventArgs e)
{
if (CheckIfImage(openFileDialog2.FileName.ToLower()) == true)
{
Image img = Image.FromFile(openFileDialog2.FileName);
string setData = (String)Clipboard.GetData(DataFormats.Rtf);
Clipboard.SetImage(img);
rtbType.Paste();
Clipboard.SetData(DataFormats.Rtf, setData);
}
else
{
MessageBox.Show("Invalid Image File Selected");
}
}
Пожалуйста, есть ли лучший способ сделать это?