This project is read-only.
Project Description
This is a functioning photo browser written in C# for a WPF platform implementing the Model View View-Model (MVVM) design pattern and Prism

A screen shot of the application running is shown above. Panning and zooming are enabled using the mouse wheel and buttons respectively, but the implementations are abstracted away from the View-Model such that the View-Model deals only with 'Plain Ordinary CLR Objects'. An screen shot showing a zoomed image is shown below


The application uses a custom control that does a lap dissolve from one image to the next using a Storyboard where the transition time is set from within the View-Model. The lap dissolve is initiated by pressing any of the navigation buttons as shown in the image below.


Images are automatically resized to fit the window. The screen shot below shows how the image adjusts to fit in the window ('Uniform Stretch).


A target directory containing the user's images can be selected using a customized, MVVM compliant, Non-Winforms control. The control itself formed the basis for an earlier CodePlex project located here An screen shot showing the control in action is below...


Additionally, the application incorporates another custom control to present Tool Tips. The image below shows a Tool Tip being raised which gives detailed information for the current image...


One of my favourite features allows the user to categorize images into subdirectories dynamically. A double click on the category will move the image file into the selected folder. The user can add or delete categories on the fly without having to open Explorer in the target directory, and the application uses Reactive Extensions (RX) as a layer of abstraction between the View-Model and the File System Watcher. In the screen shot below, the category List Box has been made visible (via the Options dialog)...


The Options dialog is raised using the code provided in the Prism Stock Trader Reference Implementation (which can be found here: This code was imported intact and then modified so that dialogs can have an icon and relevant title bar; See the image below...


Messages and information can be conveyed to the user by customized message boxes and samples are shown below...


Last edited Jun 16, 2013 at 12:30 AM by TyburnConsultancy, version 8