Sonntag, 20. August 2017

Verzeichnis Auswahl Dialog (FolderBrowserDialog) in WPF mit Ookii.Dialogs

Dieser Artikel beschreibt, wie in Microsoft WPF ein FileSelectionDialog im "Vista Style" benutzt wird. Es wird die eine Quelloffene Bibliothe Ookii.Dialogs benutzt. Die Anleitugn erfolgt für VisualStudio Community 2015.

Schritt 1: neues Projekt mit dem Namen FolderBrowserBsp anlegen. (siehe hierzu das Hello World Beispiel)

Schritt 2: Ookii.Dialogs mit NuGet installieren

  • im Projektmappen Explorer Rechtsklick auf Verweise 
  • im Kontext Menü auf 'NuGet Pakete verwalten...' 
  • im geöffneten NuGet Tab Durchsuchen auswählen 
  • ookii.dialogs im Suchfeld eingeben und mit [Enter] bestätigen 
  • Ookii.Dialogs auswählen (!Achtung nicht Okii.Dialogs.WindowsForms!)
  • mit dem Button Installieren und anschließendem Bestätigen des Dialogs wird die Bibliothek installiert 

Schritt 3: XAML Code anpassen

<Window x:Class="FolderBrowserBsp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:FolderBrowserBsp"
        mc:Ignorable="d"
        Title="MainWindow" Height="100" Width="450">
    <Canvas>
        <Button Canvas.Top="10"  Canvas.Left="10" x:Name="Btn2" Click="ButtonClick" Content="Verz. auswählen"/>
        <TextBlock Canvas.Top="40" Canvas.Left="10" Name="pfadTextBox">...</TextBlock>
    </Canvas>

</Window>


Die Höhe und Breite des Fensters wurde für Screenshots für diesn Blog angepasst. Der restliche XAML Code im Canvas zeichnet ein Button der den Dialog aufruft und ein Textfeld in das der ausgelesene Pfad geschrieben wird.

Schritt 4: C# Code anpassen

using Ookii.Dialogs.Wpf;
using System.Windows;

namespace FolderBrowserBsp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ButtonClick(object sender, RoutedEventArgs e)
        {
            VistaFolderBrowserDialog dlg = new VistaFolderBrowserDialog();
            dlg.SelectedPath = @"C:\";
            dlg.ShowNewFolderButton = true;
            bool? ret = dlg.ShowDialog();

            if (ret.Equals(true))
            {
                pfadTextBox.Text = dlg.SelectedPath;
            }
        }

    }
}


Die Methode ButtonClick enthält den Code, der den Dialog aufruft und den Pfad anschließend in die Textbox schribt.

Ergebnis: Das unten gezeigte Bild zeigt den VistaFolderBrowserDialog  und die Beispielanwendung nach der Auswahl des Windwos/System32 Verzeichnisses.



Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.