У меня есть проект WPF, написанный на C #, предназначенный для работы в Windows 10. Я хотел бы иметь возможность перетаскивать URL-адрес из браузера в TextBox WPF и определять, когда URL-адрес перетаскивается в TextBox WPF.
Я смог сделать это для файлов из Проводника, но те же события перетаскивания, которые я использую для файлов, не работают для удаления URL-адреса из браузера.Когда я отпускаю кнопку перетаскивания, текст URL копируется в текстовое поле WPF, но я не получаю никакого события, возникающего, когда это происходит, связанного с действием перетаскивания, как я, когда я перетаскиваю перетаскиваемый файл.
Ниже приведены события WPF, которые я использую для обнаружения перетаскивания файлов из проводника, но не получаю события перетаскивания для удаления URL-адресов из браузера:
private void InfoTextBox_DragOver(object sender, System.Windows.DragEventArgs e)
{
if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
e.Effects = System.Windows.DragDropEffects.Copy;
else
e.Effects = System.Windows.DragDropEffects.None;
e.Handled = true;
}
private void InfoTextBox_DragEnter(object sender, System.Windows.DragEventArgs e)
{
if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
e.Effects = System.Windows.DragDropEffects.Copy;
else
e.Effects = System.Windows.DragDropEffects.None;
e.Handled = true;
}
private void InfoTextBox_Drop(object sender, System.Windows.DragEventArgs e)
{
string[] filenames = (string[])e.Data.GetData(System.Windows.DataFormats.FileDrop);
InfoTextBox.Text = File.ReadAllText(filenames[0]);
}
Ниже приведен XAML для TextBox:
<TextBox x:Name="InfoTextBox" Grid.Column="1" Grid.ColumnSpan="3"
Grid.Row="5" Grid.RowSpan="7"
AllowDrop="True" PreviewDragOver="InfoTextBox_PreviewDragOver"
DragEnter="InfoTextBox_DragEnter" Drop="InfoTextBox_Drop"
HorizontalAlignment="Stretch" Margin="5,0,-8,80" BorderBrush="PowderBlue"
BorderThickness="1" VerticalScrollBarVisibility="Auto"
TextWrapping="Wrap" AcceptsReturn="True"
Text="" VerticalAlignment="Stretch" DragOver="InfoTextBox_DragOver" />
Что я могу добавить в свое приложение WPF, чтобы InfoTextBox запускал событие, когда я перетаскивал на него URL-адрес из браузера?Я получаю событие TextChanged, но это не относится к перетаскиванию, так как оно также может быть запущено только тогда, когда кто-то печатает в поле, которое.В качестве последнего усилия я могу использовать событие TextChanged, но хотел бы знать, можно ли это сделать с помощью чего-либо, созданного для операции перетаскивания.
Заранее спасибо.