Я работаю с 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();
}
}