In meiner WPF app akzeptiere ich drag'n drop Dateien, und nachdem ich überprüft habe, ob sie was ich will bei der Eingabe, ich öffne ein Popup-Fenster für den Benutzer alle eingeben die notwendigen Informationen zu den gelöschten Dateien. Ich verwende nur den Dateinamen des Drop-Ereignisses.Drag'n Drop in WPF Blöcke Explorer
Meine Anwendung funktioniert ohne Probleme. Mir ist jedoch aufgefallen, dass Windows Explorer nicht mehr reagiert, wenn ich die Dateien ablege, und wenn ich den Mauszeiger darüber bewege, bekomme ich einen "ziehenden" Mauszeiger, bis das Popup-Fenster in meiner Anwendung wieder geschlossen wird.
Ich bin auf Sieg 10, wenn es wichtig ist. Wie kann ich das beheben?
XAML:
<Grid AllowDrop="True" Drop="Grid_Drop"> ... </Grid>
XAML.CS:
private void Grid_Drop(object sender, DragEventArgs e)
{
if(e.Data.GetDataPresent(DataFormats.FileDrop))
{
var files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (var file in files)
{
// ... Check if file is acceptable and if so, open window
ShowCreateEditWindow(file);
}
}
}
private void ShowCreateEditWindow(string filePath)
{
var win2 = new CreateEditWindow();
win2.DataContext = this;
win2.CreateEdit.Title = "Adding entry";
win2.fileLabel.Content = filePath;
if (win2.ShowDialog() == true)
{
// If everything is ok, do other stuff
}
else return;
}
ich WinForms und haben diese Zeile hinzugefügt: 'Find() Activate();' (es wäre in Ihrem 'ShowCreateEditWindow' Methode) Es aktiviert im Fall Explorer die haltige Form wartet.. Ich fürchte, ich kenne das Äquivalent in WPF nicht. –
Es gibt .Activate() in Bezug auf Windows in WPF, jedoch hat es in diesem Fall nichts geändert. – Pumar
Ich habe mir erlaubt, Ihre Frage so zu bearbeiten, dass sie verständlicher ist. Ich hatte das gleiche Problem (siehe meine Antwort) – helb