WPF, Silverlight, Windows Phone 8 und Windows Store Apps

WPF: "FolderBrowserDialog"
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und Fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „WPF: ‚FolderBrowserDialog’“. Viel Spaß mit XAML Expertise.

Zur Auswahl einer Datei aus dem Explorer ist unter WPF nicht viel Aufwand nötig. Das ist ganz einfach über eine OpenFileDialog()-Instanz zum ShowDialog-Befehl zu erreichen. Doch was ist, wenn man keine einzelne Datei, sondern gleich ein ganzes Verzeichnis auswählen möchte? Hierzu gibt es leider keine direkte Lösung. Dieses Beispiel zeigt, wie man dies trotz fehlender Funktionalität anbieten kann. Zuerst wird ein neues WPF-Projekt erstellt, der Oberfläche ein Button mitgegeben und ein Click-Event abonniert. Nun fügen wir der Click-Methode folgenden Code hinzu:

FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
IWin32Window win = new OldWindow(source.Handle);
DialogResult result = folderBrowserDialog.ShowDialog(win);

Wie der Name der Klasse FolderBrowserDialog schon sagt, sorgt dieser Code dafür, dass der Dialog zur Verzeichnisauswahl geöffnet wird. Allerdings ist diese Klasse unter WPF nicht bekannt, sie existiert nur unter WinForms. Um den Code funktionsfähig zu machen, ist es also notwendig, dem Projekt die entsprechende dll-Datei aus WinForms hinzuzufügen. Klicken Sie rechts auf das Projekt, gehen Sie zu Add | Reference und wählen Sie „System.Windows.Forms“ aus. Nun muss nur noch das using „IWin32Window = System.Windows.Forms.IWin32Window“ hinzugefügt werden und die Anwendung kann gestartet werden (Abb. 1).

Abb. 1: „FolderBrowserDialog“ unter WPF

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -