Die FolderBrowserDialogKlasse vonSystem.Windows.Forms ist die empfohlene Methode zum Anzeigen eines Dialogfelds, in dem ein Benutzer einen Ordner auswählen kann.
Bis vor kurzem stimmte das Erscheinungsbild und Verhalten dieses Dialogfelds nicht mit den anderen Dateisystemdialogen überein. Dies ist einer der Gründe, warum Benutzer es nur ungern verwendeten.
Die gute Nachricht ist, dass FolderBrowserDialog es in NET Core 3.0 "modernisiert" wurde und daher eine praktikable Option für diejenigen ist, die entweder Windows Forms oder WPF-Apps schreiben, die auf diese Version oder höher abzielen.
In .NET - Core 3.0, Windows Forms-Benutzer [sic] eine neuere COM-basierte Steuerung , die in Windows Vista eingeführt wurde:

Um in einer NET Core WPF-App zu referenzierenSystem.Windows.Forms , muss die Projektdatei bearbeitet und die folgende Zeile hinzugefügt werden:
<UseWindowsForms>true</UseWindowsForms>
Dies kann direkt nach dem vorhandenen platziert werden <UseWPF> Element platziert werden.
Dann müssen Sie nur noch den Dialog verwenden:
using System;
using System.Windows.Forms;
...
using var dialog = new FolderBrowserDialog
{
Description = "Time to select a folder",
UseDescriptionForTitle = true,
SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
+ Path.DirectorySeparatorChar,
ShowNewFolderButton = true
};
if (dialog.ShowDialog() == DialogResult.OK)
{
...
}
FolderBrowserDialoghat eine RootFolderEigenschaft, die angeblich "den Stammordner festlegt, von dem aus das Browsen beginnt", aber was auch immer ich darauf gesetzt habe, hat keinen Unterschied gemacht; SelectedPathschien die bessere Eigenschaft für diesen Zweck zu sein, jedoch ist der nachfolgende Backslash erforderlich.
Außerdem ShowNewFolderButtonscheint die Eigenschaft ebenfalls ignoriert zu werden. Die Schaltfläche wird unabhängig davon immer angezeigt.