WPF - нужно перетащить текст из блокнота, а затем вызвать метод

У меня есть текстовое поле в приложении WPF, в которое я хочу иметь возможность перетаскивать текст из внешнего приложения (notepad++). Обработчик PreviewDrop отлично работает, но когда я получаю текст из текстового поля после вызова обработчика (myTxtBox.Text), все, что я получаю, это пустая строка. Как только я добавляю текст в текстовое поле, я хочу, чтобы обработчик срабатывал и вызывал другой метод, который что-то сделает с отбрасываемым текстовым вводом. но стреляет слишком быстро. какие-либо предложения?

мой метод обработчика

 private void myTxtBox_Drop(object sender, DragEventArgs e)
 {
     string itemID = myTxtBox.Text.Trim();
 }

xaml текстового поля

<TextBox x:Name="myTxtBox" Height="23" Margin="5,61,5,0" TextWrapping="Wrap" VerticalAlignment="Top" Grid.ColumnSpan="1" LostFocus="btnLookup_Click" Drop="myTxtBox_Drop" KeyDown="myTxtBox_KeyDown" AllowDrop="True"  PreviewDrop="myTxtBox_Drop" />

person user1977591    schedule 08.05.2015    source источник
comment
как вы все равно перетаскиваете из блокнота?   -  person Theodosius Von Richthofen    schedule 08.05.2015
comment
выделите текст и перетащите его   -  person user1977591    schedule 08.05.2015
comment
интересно, стандартный блокнот, кажется, не позволяет ничего перетаскивать, он просто пытается снова выделить. я могу сделать это в Word и т. д., но я хотел бы знать, как это делает ваш Блокнот.   -  person Theodosius Von Richthofen    schedule 08.05.2015
comment
извините, я не упомянул, что я использую блокнот ++   -  person user1977591    schedule 08.05.2015
comment
Похоже, вы используете один и тот же обработчик как для событий предварительного просмотра, так и для событий с завершением, что, вероятно, все портит.   -  person Sean Beanland    schedule 08.05.2015
comment
@WasGoodDone Нет, даже если я удалю обработчик Drop, я все равно получу тот же результат. И я начал использовать только Drop, который никогда не срабатывал. Поэтому я добавил PreviewDrop   -  person user1977591    schedule 08.05.2015


Ответы (1)


Попробуйте это, чтобы получить отброшенный текст:

string itemID = e.Data.GetData(DataFormats.Text).ToString().Trim();
person Theodosius Von Richthofen    schedule 08.05.2015
comment
нет проблем. я спотыкался, пытаясь понять, как перетаскивать обычный блокнот, лол - person Theodosius Von Richthofen; 08.05.2015