<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«




ShellBrowser WPF Components


Welcome to JAM Software's ShellBrowser WPF Components, a comprehensive set of .NET WPF components using the native Windows Shell-API on 32- and 64-bit systems.



ShellBrowser WPF Components is a control set for .NET. It gives a programmer easy access to the Win32 shell functionality supporting all Windows versions beginning with Windows Vista. Most of the components (like the ExplorerBrowser, ShellTree, ShellList, ShellFilePreview) are visual components - they can simply be dragged from Visual Studio's component panel onto the window. In their default settings the components look like the corresponding parts in Windows Explorer. Numerous properties and events make the controls highly customizable in appearance and behavior.

In addition, ShellBrowser WPF includes some non-visual controls that you can use in code: the ShellChangeNotifier can be used to track file system events, such as changes of files and folders; the BrowseForFolder is sibling to .NET's OpenFileDialog, but instead of files it allows the user to select folders.

Also included is a range of classes that can be used as a model representing the file system (see the ItemIdList and ItemIdListCollection class).



ShellBrowser WPF Components comprises different assemblies:

-  ShellBrowser.Core contains the classes used as data models in the WPF controls

-  ShellBrowser.WPF contains most WPF controls. It uses ShellBrowser.Core internally too.

-  ShellBrowser.Winforms contains some additional controls that are based on Windows Forms. It makes use of ShellBrowser.Core internally too.

When adding components from Visual Studio's toolbar references to the needed dlls are added automatically. Also the needed namespaces are automatically added to XAML.

You need to deploy all ShellBrowser assemblies that are referenced by your project. They are “royalty free“ - as soon as you licensed the product you are allowed to arbitrarily often deliver the assembly to your customers. When distributing the application that uses these controls, the dlls need to be located in the executable's folder.

The full version is packed with the file “JamDesign.dll“, which is necessary to develop software with the ShellBrowser controls but not to run them. “JamDesign.dll“ must not be delivered together with the software using the Shellbrowser controls.


Support for extended length paths (longer than 260 characters)

Depending on the .NET and Windows version of the target system, only file and folder paths that are less than 260 chars will be supported by the .NET Framework. Some operations in the System.IO namespace like "Path.Combine" are string operations and will work with paths that exceed 260 characters, while others like "File.Exists" will throw PathTooLongExceptions or DirectoryNotFoundExceptions in .NET versions >= 4.6.2. Since ShellBrowser.NET components also make use of those operations by default long paths are not supported. However ShellBrowser can use AlphaFS, a third party library replacing the relevant System.IO namespace and thus avoiding the long path restriction.


- Just install the AlphaFS nuget package for your project. ShellBrowser will recognize it is there and use it instead of the System.IO namespace.

- Make sure the AlphaFS.dll is deployed to your output folder and is also deployed with your software.

- Note: AlphaFS is optional. If it is not installed, you might find a "FileNotFoundException". In this case ShellBrowser will simply use the .NET System.IO namespace instead.


For a comprehensive list of supported Windows, .NET and Visual Studio versions, see here.

Documentation/Getting started

This document gives you a short overview of the ShellBrowser WPF components. To get started, we would advise you to

- have a look at the Components page to get a quick overview of the available components and what they are used for

- try out and take a look at our example projects that are installed with the components.

The complete API reference can be found in the installation folder of the ShellBrowser.WPF components, or online: API documentation.



© 2017-2021 Joachim Marder e.K.