Я работаю с WPF и пытаюсь создать текстовое поле с перетаскиванием.
В этом текстовом поле я хочу получить тело письма, которое я перетаскиваю из Outlook.
Код работает, но я думаю, что мне нужно что-то, чтобы «сбросить» ActiveExplorer, потому что теперь он показывает только последнее «НОВОЕ» электронное письмо, которое я перетаскиваю в текстовое поле.
Пример:
Перетащите электронную почту 1 -> Текстовое поле — показывает электронную почту 1
Перетащите электронное письмо 2 -> Текстовое поле — показывает электронное письмо 2
Перетащите электронную почту 1 -> Текстовое поле — показывает электронную почту 2, а электронная почта 1 не будет отображаться, потому что она уже существует в ActiveExplorer, и она покажет электронную почту 2.
Надеюсь, мой вопрос вам немного ясен..
Заранее спасибо!
XAML-код:
<TextBox
Name="myTextbox"
AllowDrop="True"
PreviewDragEnter="email_DragEnter"
PreviewDrop="email_Drop" />
Код XAML позади:
private void email_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
private void email_Drop(object sender, DragEventArgs e)
{
Outlook.ApplicationClass oApp = new Outlook.ApplicationClass();
Outlook.Explorer oExplorer = oApp.ActiveExplorer();
Outlook.Selection oSelection = oExplorer.Selection;
foreach (object item in oSelection)
{
Outlook.MailItem mi = (Outlook.MailItem)item;
myTextbox.Text = mi.Body.ToString();
}
}