Respuesta adicional de A.R. tenga en cuenta que si desea utilizar TextBox
para dejar caer, debe saber lo siguiente.
TextBox
parece que ya tiene un manejo predeterminado para DragAndDrop
. Si su objeto de datos es String
, simplemente funciona. No se manejan otros tipos y obtienes el efecto de mouse prohibido y nunca se llama a tu controlador de soltar.
Parece que puede activar su propio manejo con e.Handled
a ciertoPreviewDragOver
en un manejador de eventos.
XAML
<TextBox AllowDrop="True" x:Name="RtbInputFile" HorizontalAlignment="Stretch" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" />
C#
RtbInputFile.Drop += RtbInputFile_Drop;
RtbInputFile.PreviewDragOver += RtbInputFile_PreviewDragOver;
private void RtbInputFile_PreviewDragOver(object sender, DragEventArgs e)
{
e.Handled = true;
}
private void RtbInputFile_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
// Note that you can have more than one file.
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
var file = files[0];
HandleFile(file);
}
}
impresionante funciona a las mil maravillas, simplemente cambiados "HandleFileOpen (archivos [0]);" a "foreach (archivo de cadena en archivos) {OpenFile (archivo);}" - Gracias :) –
Esto no funciona para mí:/ –
@Matteo Care para elaborar? –