Как обнаружить URL-адрес, перетаскиваемый из браузера в текстовое поле WPF с помощью C # - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть проект 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, но хотел бы знать, можно ли это сделать с помощью чего-либо, созданного для операции перетаскивания.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...