changeset 104:4cfdecdb1d12

Silverlight Glimpse now lives on codeplex, StockDisplay lives on Google code
author stevenhollidge <stevenhollidge@hotmail.com>
date Sun, 06 May 2012 12:16:38 +0100
parents 8cb4f36717e9
children 1c9fc59af186
files SilverlightGlimpse/Libs/FluentValidation.dll SilverlightGlimpse/Libs/System.Windows.Controls.Data.Input.dll SilverlightGlimpse/Libs/System.Windows.Controls.dll SilverlightGlimpse/SilverlightGlimpse.sln SilverlightGlimpse/SilverlightGlimpse.suo SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindow.cs SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindowAutomationPeer.cs SilverlightGlimpse/SilverlightGlimpse/Converters/BoolToValueConverter.cs SilverlightGlimpse/SilverlightGlimpse/Converters/BoolToVisibilityConverter.cs SilverlightGlimpse/SilverlightGlimpse/Diagnostics/PropertyPathHelper.cs SilverlightGlimpse/SilverlightGlimpse/Diagnostics/Stopwatch.cs SilverlightGlimpse/SilverlightGlimpse/Interfaces/IBrokenBindingsService.cs SilverlightGlimpse/SilverlightGlimpse/Interfaces/ILogWriter.cs SilverlightGlimpse/SilverlightGlimpse/Models/BindingError.cs SilverlightGlimpse/SilverlightGlimpse/Models/ValidationWrapper.cs SilverlightGlimpse/SilverlightGlimpse/Properties/AppManifest.xml SilverlightGlimpse/SilverlightGlimpse/Properties/AssemblyInfo.cs SilverlightGlimpse/SilverlightGlimpse/Services/BrokenBindingsService.cs SilverlightGlimpse/SilverlightGlimpse/Services/DebugMonitor.cs SilverlightGlimpse/SilverlightGlimpse/Services/Glimpse.cs SilverlightGlimpse/SilverlightGlimpse/Services/LogWriter.cs SilverlightGlimpse/SilverlightGlimpse/SilverlightGlimpse.csproj SilverlightGlimpse/SilverlightGlimpse/Themes/generic.xaml SilverlightGlimpse/SilverlightGlimpse/ToDo.txt SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml.cs SilverlightGlimpse/SilverlightGlimpse/Views/ExceptionsViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/ExceptionsViewer.xaml.cs SilverlightGlimpse/SilverlightGlimpse/Views/GlimpseViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/GlimpseViewer.xaml.cs SilverlightGlimpse/SilverlightGlimpse/Views/LoadExceptionViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/LoadExceptionViewer.xaml.cs SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml.cs SilverlightGlimpse/SilverlightGlimpse/Views/ValidationsViewer.xaml SilverlightGlimpse/SilverlightGlimpse/Views/ValidationsViewer.xaml.cs SilverlightGlimpse/SilverlightValidation/App.xaml SilverlightGlimpse/SilverlightValidation/App.xaml.cs SilverlightGlimpse/SilverlightValidation/Interfaces/IUserModel.cs SilverlightGlimpse/SilverlightValidation/Models/UserModel.cs SilverlightGlimpse/SilverlightValidation/Properties/AppManifest.xml SilverlightGlimpse/SilverlightValidation/Properties/AssemblyInfo.cs SilverlightGlimpse/SilverlightValidation/SilverlightValidation.csproj SilverlightGlimpse/SilverlightValidation/Validators/UserModelValidator.cs SilverlightGlimpse/SilverlightValidation/ViewModels/UserListViewModel.cs SilverlightGlimpse/SilverlightValidation/ViewModels/UserViewModel.cs SilverlightGlimpse/SilverlightValidation/ViewModels/ViewModelBase.cs SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml.cs SilverlightGlimpse/SilverlightValidation/Views/UserView.xaml SilverlightGlimpse/SilverlightValidation/Views/UserView.xaml.cs
diffstat 51 files changed, 0 insertions(+), 5741 deletions(-) [+]
line wrap: on
line diff
Binary file SilverlightGlimpse/Libs/FluentValidation.dll has changed
Binary file SilverlightGlimpse/Libs/System.Windows.Controls.Data.Input.dll has changed
Binary file SilverlightGlimpse/Libs/System.Windows.Controls.dll has changed
--- a/SilverlightGlimpse/SilverlightGlimpse.sln	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SilverlightGlimpse", "SilverlightGlimpse\SilverlightGlimpse.csproj", "{BB51026B-2864-4389-AACA-0BBDF1926E46}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SilverlightValidation", "SilverlightValidation\SilverlightValidation.csproj", "{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{BB51026B-2864-4389-AACA-0BBDF1926E46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BB51026B-2864-4389-AACA-0BBDF1926E46}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BB51026B-2864-4389-AACA-0BBDF1926E46}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BB51026B-2864-4389-AACA-0BBDF1926E46}.Release|Any CPU.Build.0 = Release|Any CPU
-		{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
Binary file SilverlightGlimpse/SilverlightGlimpse.suo has changed
--- a/SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindow.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1593 +0,0 @@
-// Original code:  http://floatablewindow.codeplex.com/
-// Author:  Tim Heuer http://timheuer.com/blog/
-
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System.Collections;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Windows.Automation;
-using System.Windows.Automation.Peers;
-using System.Windows.Controls.Primitives;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-
-namespace System.Windows.Controls
-{
-    /// <summary>
-    /// Provides a window that can be displayed over a parent window and blocks
-    /// interaction with the parent window.
-    /// </summary>
-    /// <QualityBand>Preview</QualityBand>
-    [TemplatePart(Name = PART_Chrome, Type = typeof(FrameworkElement))]
-    [TemplatePart(Name = PART_CloseButton, Type = typeof(ButtonBase))]
-    [TemplatePart(Name = PART_ContentPresenter, Type = typeof(FrameworkElement))]
-    [TemplatePart(Name = PART_ContentRoot, Type = typeof(FrameworkElement))]
-    [TemplatePart(Name = PART_Overlay, Type = typeof(Panel))]
-    [TemplatePart(Name = PART_Root, Type = typeof(FrameworkElement))]
-    [TemplateVisualState(Name = VSMSTATE_StateClosed, GroupName = VSMGROUP_Window)]
-    [TemplateVisualState(Name = VSMSTATE_StateOpen, GroupName = VSMGROUP_Window)]
-    public class FloatableWindow : ContentControl
-    {
-        #region Static Fields and Constants
-
-        /// <summary>
-        /// The name of the Chrome template part.
-        /// </summary>
-        private const string PART_Chrome = "Chrome";
-
-        /// <summary>
-        /// The name of the CloseButton template part.
-        /// </summary>
-        private const string PART_CloseButton = "CloseButton";
-
-        /// <summary>
-        /// The name of the ContentPresenter template part.
-        /// </summary>
-        private const string PART_ContentPresenter = "ContentPresenter";
-
-        /// <summary>
-        /// The name of the ContentRoot template part.
-        /// </summary>
-        private const string PART_ContentRoot = "ContentRoot";
-
-        /// <summary>
-        /// The name of the Overlay template part.
-        /// </summary>
-        private const string PART_Overlay = "Overlay";
-
-        /// <summary>
-        /// The name of the Root template part.
-        /// </summary>
-        private const string PART_Root = "Root";
-
-        /// <summary>
-        /// The name of the WindowStates VSM group.
-        /// </summary>
-        private const string VSMGROUP_Window = "WindowStates";
-
-        /// <summary>
-        /// The name of the Closing VSM state.
-        /// </summary>
-        private const string VSMSTATE_StateClosed = "Closed";
-
-        /// <summary>
-        /// The name of the Opening VSM state.
-        /// </summary>
-        private const string VSMSTATE_StateOpen = "Open";
-
-        #region public bool HasCloseButton
-
-        /// <summary>
-        /// Gets or sets a value indicating whether the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> has a close
-        /// button.
-        /// </summary>
-        /// <value>
-        /// True if the child window has a close button; otherwise, false. The
-        /// default is true.
-        /// </value>
-        public bool HasCloseButton
-        {
-            get { return (bool)GetValue(HasCloseButtonProperty); }
-            set { SetValue(HasCloseButtonProperty, value); }
-        }
-
-        /// <summary>
-        /// Identifies the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.HasCloseButton" />
-        /// dependency property.
-        /// </summary>
-        /// <value>
-        /// The identifier for the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.HasCloseButton" />
-        /// dependency property.
-        /// </value>
-        public static readonly DependencyProperty HasCloseButtonProperty =
-            DependencyProperty.Register(
-            "HasCloseButton",
-            typeof(bool),
-            typeof(FloatableWindow),
-            new PropertyMetadata(true, OnHasCloseButtonPropertyChanged));
-
-        /// <summary>
-        /// HasCloseButtonProperty PropertyChangedCallback call back static function.
-        /// </summary>
-        /// <param name="d">FloatableWindow object whose HasCloseButton property is changed.</param>
-        /// <param name="e">DependencyPropertyChangedEventArgs which contains the old and new values.</param>
-        private static void OnHasCloseButtonPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
-        {
-            FloatableWindow cw = (FloatableWindow)d;
-
-            if (cw.CloseButton != null)
-            {
-                if ((bool)e.NewValue)
-                {
-                    cw.CloseButton.Visibility = Visibility.Visible;
-                }
-                else
-                {
-                    cw.CloseButton.Visibility = Visibility.Collapsed;
-                }
-            }
-        }
-
-        #endregion public bool HasCloseButton
-
-        #region public Brush OverlayBrush
-
-        /// <summary>
-        /// Gets or sets the visual brush that is used to cover the parent
-        /// window when the child window is open.
-        /// </summary>
-        /// <value>
-        /// The visual brush that is used to cover the parent window when the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> is open. The
-        /// default is null.
-        /// </value>
-        public Brush OverlayBrush
-        {
-            get { return (Brush)GetValue(OverlayBrushProperty); }
-            set { SetValue(OverlayBrushProperty, value); }
-        }
-
-        /// <summary>
-        /// Identifies the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.OverlayBrush" />
-        /// dependency property.
-        /// </summary>
-        /// <value>
-        /// The identifier for the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.OverlayBrush" />
-        /// dependency property.
-        /// </value>
-        public static readonly DependencyProperty OverlayBrushProperty =
-            DependencyProperty.Register(
-            "OverlayBrush",
-            typeof(Brush),
-            typeof(FloatableWindow),
-            new PropertyMetadata(OnOverlayBrushPropertyChanged));
-
-        /// <summary>
-        /// OverlayBrushProperty PropertyChangedCallback call back static function.
-        /// </summary>
-        /// <param name="d">FloatableWindow object whose OverlayBrush property is changed.</param>
-        /// <param name="e">DependencyPropertyChangedEventArgs which contains the old and new values.</param>
-        private static void OnOverlayBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
-        {
-            FloatableWindow cw = (FloatableWindow)d;
-
-            if (cw.Overlay != null)
-            {
-                cw.Overlay.Background = (Brush)e.NewValue;
-            }
-        }
-
-        #endregion public Brush OverlayBrush
-
-        #region public double OverlayOpacity
-
-        /// <summary>
-        /// Gets or sets the opacity of the overlay brush that is used to cover
-        /// the parent window when the child window is open.
-        /// </summary>
-        /// <value>
-        /// The opacity of the overlay brush that is used to cover the parent
-        /// window when the <see cref="T:System.Windows.Controls.FloatableWindow" />
-        /// is open. The default is 1.0.
-        /// </value>
-        public double OverlayOpacity
-        {
-            get { return (double)GetValue(OverlayOpacityProperty); }
-            set { SetValue(OverlayOpacityProperty, value); }
-        }
-
-        /// <summary>
-        /// Identifies the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.OverlayOpacity" />
-        /// dependency property.
-        /// </summary>
-        /// <value>
-        /// The identifier for the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.OverlayOpacity" />
-        /// dependency property.
-        /// </value>
-        public static readonly DependencyProperty OverlayOpacityProperty =
-            DependencyProperty.Register(
-            "OverlayOpacity",
-            typeof(double),
-            typeof(FloatableWindow),
-            new PropertyMetadata(OnOverlayOpacityPropertyChanged));
-
-        /// <summary>
-        /// OverlayOpacityProperty PropertyChangedCallback call back static function.
-        /// </summary>
-        /// <param name="d">FloatableWindow object whose OverlayOpacity property is changed.</param>
-        /// <param name="e">DependencyPropertyChangedEventArgs which contains the old and new values.</param>
-        private static void OnOverlayOpacityPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
-        {
-            FloatableWindow cw = (FloatableWindow)d;
-
-            if (cw.Overlay != null)
-            {
-                cw.Overlay.Opacity = (double)e.NewValue;
-            }
-        }
-
-        #endregion public double OverlayOpacity
-
-        #region private static Control RootVisual
-
-        /// <summary>
-        /// Gets the root visual element.
-        /// </summary>
-        private static Control RootVisual
-        {
-            get
-            {
-                return Application.Current == null ? null : (Application.Current.RootVisual as Control);
-            }
-        }
-
-        #endregion private static Control RootVisual
-
-        #region public object Title
-
-        /// <summary>
-        /// Gets or sets the title that is displayed in the frame of the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" />.
-        /// </summary>
-        /// <value>
-        /// The title displayed at the top of the window. The default is null.
-        /// </value>
-        public object Title
-        {
-            get { return GetValue(TitleProperty); }
-            set { SetValue(TitleProperty, value); }
-        }
-
-        /// <summary>
-        /// Identifies the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.Title" />
-        /// dependency property.
-        /// </summary>
-        /// <value>
-        /// The identifier for the
-        /// <see cref="P:System.Windows.Controls.FloatableWindow.Title" />
-        /// dependency property.
-        /// </value>
-        public static readonly DependencyProperty TitleProperty =
-            DependencyProperty.Register(
-            "Title",
-            typeof(object),
-            typeof(FloatableWindow),
-            null);
-
-        #endregion public object Title
-
-        #endregion Static Fields and Constants
-
-        #region Member Fields
-        /// <summary>
-        /// Set in the overloaded Show method.  Offsets the Popup vertically from the top left corner of the browser window by this amount.
-        /// </summary>
-        private double _verticalOffset;
-
-        /// <summary>
-        /// Set in the overloaded Show method.  Offsets the Popup horizontally from the top left corner of the browser window by this amount.
-        /// </summary>
-        private double _horizontalOffset;
-
-        /// <summary>
-        /// Private accessor for the IsModal
-        /// </summary>
-        [DefaultValue(false)]
-        private bool _modal;
-
-        /// <summary>
-        /// Private accessor for the Chrome.
-        /// </summary>
-        private FrameworkElement _chrome;
-
-        /// <summary>
-        /// Private accessor for the click point on the chrome.
-        /// </summary>
-        private Point _clickPoint;
-
-        /// <summary>
-        /// Private accessor for the Closing storyboard.
-        /// </summary>
-        private Storyboard _closed;
-
-        /// <summary>
-        /// Private accessor for the ContentPresenter.
-        /// </summary>
-        private FrameworkElement _contentPresenter;
-
-        /// <summary>
-        /// Private accessor for the translate transform that needs to be applied on to the ContentRoot.
-        /// </summary>
-        private TranslateTransform _contentRootTransform;
-
-        /// <summary>
-        /// Content area desired width.
-        /// </summary>
-        private double _desiredContentWidth;
-
-        /// <summary>
-        /// Content area desired height.
-        /// </summary>
-        private double _desiredContentHeight;
-
-        /// <summary>
-        /// Desired margin for the window.
-        /// </summary>
-        private Thickness _desiredMargin;
-
-        /// <summary>
-        /// Private accessor for the Dialog Result property.
-        /// </summary>
-        private bool? _dialogresult;
-
-        /// <summary>
-        /// Private accessor for the FloatableWindow InteractionState.
-        /// </summary>
-        private WindowInteractionState _interactionState;
-
-        /// <summary>
-        /// Boolean value that specifies whether the application is exit or not.
-        /// </summary>
-        private bool _isAppExit;
-
-        /// <summary>
-        /// Boolean value that specifies whether the window is in closing state or not.
-        /// </summary>
-        private bool _isClosing;
-
-        /// <summary>
-        /// Boolean value that specifies whether the window is opened.
-        /// </summary>
-        private bool _isOpen;
-
-        /// <summary>
-        /// Private accessor for the Opening storyboard.
-        /// </summary>
-        private Storyboard _opened;
-
-        /// <summary>
-        /// Boolean value that specifies whether the mouse is captured or not.
-        /// </summary>
-        private bool _isMouseCaptured;
-
-        /// <summary>
-        /// Private accessor for the Root of the window.
-        /// </summary>
-        private FrameworkElement _root;
-
-        /// <summary>
-        /// Private accessor for the position of the window with respect to RootVisual.
-        /// </summary>
-        private Point _windowPosition;
-
-        private static int z;
-
-        #endregion Member Fields
-
-        #region Constructors
-
-        /// <summary>
-        /// Initializes a new instance of the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> class.
-        /// </summary>
-        public FloatableWindow()
-        {
-            this.DefaultStyleKey = typeof(FloatableWindow);
-            this.InteractionState = WindowInteractionState.NotResponding;
-        }
-
-        #endregion Constructors
-
-        #region Events
-
-        /// <summary>
-        /// Occurs when the <see cref="T:System.Windows.Controls.FloatableWindow" />
-        /// is closed.
-        /// </summary>
-        public event EventHandler Closed;
-
-        /// <summary>
-        /// Occurs when the <see cref="T:System.Windows.Controls.FloatableWindow" />
-        /// is closing.
-        /// </summary>
-        public event EventHandler<CancelEventArgs> Closing;
-
-        #endregion Events
-
-        #region Properties
-
-        private Panel _parentLayoutRoot;
-        public Panel ParentLayoutRoot
-        {
-            get { return _parentLayoutRoot; }
-            set
-            {
-                _parentLayoutRoot = value;
-                var grid = _parentLayoutRoot as Grid;
-                if (grid == null) return;
-                if (grid.RowDefinitions.Count > 0) Grid.SetRowSpan(this, grid.RowDefinitions.Count);
-                if (grid.ColumnDefinitions.Count > 0) Grid.SetColumnSpan(this, grid.ColumnDefinitions.Count);
-            }
-        }
-
-        /// <summary>
-        /// Gets the internal accessor for the ContentRoot of the window.
-        /// </summary>
-        internal FrameworkElement ContentRoot
-        {
-            get;
-            private set;
-        }
-
-        /// <summary>
-        /// Setting for the horizontal positioning offset for start position
-        /// </summary>
-        public double HorizontalOffset
-        {
-            get { return _horizontalOffset; }
-            set { _horizontalOffset = value; }
-        }
-
-        /// <summary>
-        /// Setting for the vertical positioning offset for start position
-        /// </summary>
-        public double VerticalOffset
-        {
-            get { return _verticalOffset; }
-            set { _verticalOffset = value; }
-        }
-
-        /// <summary>
-        /// Gets the internal accessor for the modal of the window.
-        /// </summary>
-        public bool IsModal
-        {
-            get
-            {
-                return _modal;
-            }
-        }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> was accepted or
-        /// canceled.
-        /// </summary>
-        /// <value>
-        /// True if the child window was accepted; false if the child window was
-        /// canceled. The default is null.
-        /// </value>
-        [TypeConverter(typeof(NullableBoolConverter))]
-        public bool? DialogResult
-        {
-            get
-            {
-                return this._dialogresult;
-            }
-
-            set
-            {
-                if (this._dialogresult != value)
-                {
-                    this._dialogresult = value;
-                    this.Close();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Gets the internal accessor for the PopUp of the window.
-        /// </summary>
-        internal Popup ChildWindowPopup
-        {
-            get;
-            private set;
-        }
-
-        /// <summary>
-        /// Gets the internal accessor for the close button of the window.
-        /// </summary>
-        internal ButtonBase CloseButton
-        {
-            get;
-            private set;
-        }
-
-        /// <summary>
-        /// Gets the InteractionState for the FloatableWindow.
-        /// </summary>
-        internal WindowInteractionState InteractionState
-        {
-            get
-            {
-                return this._interactionState;
-            }
-            private set
-            {
-                if (this._interactionState != value)
-                {
-                    WindowInteractionState oldValue = this._interactionState;
-                    this._interactionState = value;
-                    FloatableWindowAutomationPeer peer = FloatableWindowAutomationPeer.FromElement(this) as FloatableWindowAutomationPeer;
-
-                    if (peer != null)
-                    {
-                        peer.RaiseInteractionStatePropertyChangedEvent(oldValue, this._interactionState);
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the PopUp is open or not.
-        /// </summary>
-        private bool IsOpen
-        {
-            get
-            {
-                return (this.ChildWindowPopup != null && this.ChildWindowPopup.IsOpen) ||
-                    ((ParentLayoutRoot != null) && (ParentLayoutRoot.Children.Contains(this)));
-            }
-        }
-
-        /// <summary>
-        /// Gets the internal accessor for the overlay of the window.
-        /// </summary>
-        internal Panel Overlay
-        {
-            get;
-            private set;
-        }
-
-        #endregion Properties
-
-        #region Static Methods
-
-        /// <summary>
-        /// Inverts the input matrix.
-        /// </summary>
-        /// <param name="matrix">The matrix values that is to be inverted.</param>
-        /// <returns>Returns a value indicating whether the inversion was successful or not.</returns>
-        private static bool InvertMatrix(ref Matrix matrix)
-        {
-            double determinant = (matrix.M11 * matrix.M22) - (matrix.M12 * matrix.M21);
-
-            if (determinant == 0.0)
-            {
-                return false;
-            }
-
-            Matrix matCopy = matrix;
-            matrix.M11 = matCopy.M22 / determinant;
-            matrix.M12 = -1 * matCopy.M12 / determinant;
-            matrix.M21 = -1 * matCopy.M21 / determinant;
-            matrix.M22 = matCopy.M11 / determinant;
-            matrix.OffsetX = ((matCopy.OffsetY * matCopy.M21) - (matCopy.OffsetX * matCopy.M22)) / determinant;
-            matrix.OffsetY = ((matCopy.OffsetX * matCopy.M12) - (matCopy.OffsetY * matCopy.M11)) / determinant;
-
-            return true;
-        }
-
-        #endregion Static Methods
-
-        #region Methods
-
-        /// <summary>
-        /// Executed when the application is exited.
-        /// </summary>
-        /// <param name="sender">The sender.</param>
-        /// <param name="e">Event args.</param>
-        internal void Application_Exit(object sender, EventArgs e)
-        {
-            if (this.IsOpen)
-            {
-                this._isAppExit = true;
-                try
-                {
-                    this.Close();
-                }
-                finally
-                {
-                    this._isAppExit = false;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Executed when focus is given to the window via a click.  Attempts to bring current 
-        /// window to the front in the event there are more windows.
-        /// </summary>
-        internal void BringToFront()
-        {
-            z++;
-            Canvas.SetZIndex(this, z);
-#if DEBUG
-            //this.Title = z.ToString();
-#endif
-        }
-
-        /// <summary>
-        /// Changes the visual state of the FloatableWindow.
-        /// </summary>
-        private void ChangeVisualState()
-        {
-            if (this._isClosing)
-            {
-                VisualStateManager.GoToState(this, VSMSTATE_StateClosed, true);
-            }
-            else
-            {
-                VisualStateManager.GoToState(this, VSMSTATE_StateOpen, true);
-                BringToFront();
-            }
-        }
-
-        /// <summary>
-        /// Executed when FloatableWindow size is changed.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Size changed event args.</param>
-        private void ChildWindow_SizeChanged(object sender, SizeChangedEventArgs e)
-        {
-            if (_modal)
-            {
-                if (this.Overlay != null)
-                {
-                    if (e.NewSize.Height != this.Overlay.Height)
-                    {
-                        this._desiredContentHeight = e.NewSize.Height;
-                    }
-
-                    if (e.NewSize.Width != this.Overlay.Width)
-                    {
-                        this._desiredContentWidth = e.NewSize.Width;
-                    }
-                }
-
-                if (this.IsOpen)
-                {
-                    this.UpdateOverlaySize();
-                }
-            }
-        }
-
-        /// <summary>
-        /// Closes a <see cref="T:System.Windows.Controls.FloatableWindow" />.
-        /// </summary>
-        public void Close()
-        {
-            // AutomationPeer returns "Closing" when Close() is called
-            // but the window is not closed completely:
-            this.InteractionState = WindowInteractionState.Closing;
-            CancelEventArgs e = new CancelEventArgs();
-            this.OnClosing(e);
-
-            // On ApplicationExit, close() cannot be cancelled
-            if (!e.Cancel || this._isAppExit)
-            {
-                if (RootVisual != null)
-                {
-                    RootVisual.IsEnabled = true;
-                }
-
-                // Close Popup
-                if (this.IsOpen)
-                {
-                    if (this._closed != null)
-                    {
-                        // Popup will be closed when the storyboard ends
-                        this._isClosing = true;
-                        try
-                        {
-                            var sb = GetVisualStateStoryboard("WindowStates", "Closed");
-                            sb.Completed += (s, args) =>
-                            {
-                                this.ParentLayoutRoot.Children.Remove(this);
-                                this.OnClosed(EventArgs.Empty);
-                                this.UnSubscribeFromEvents();
-                                this.UnsubscribeFromTemplatePartEvents();
-
-                                if (Application.Current.RootVisual != null)
-                                {
-                                    Application.Current.RootVisual.GotFocus -= new RoutedEventHandler(this.RootVisual_GotFocus);
-                                }
-                            };
-                            this.ChangeVisualState();
-                        }
-                        finally
-                        {
-                            this._isClosing = false;
-                        }
-                    }
-                    else
-                    {
-                        // If no closing storyboard is defined, close the Popup
-                        this.ChildWindowPopup.IsOpen = false;
-                    }
-
-                    if (!this._dialogresult.HasValue)
-                    {
-                        // If close action is not happening because of DialogResult property change action,
-                        // Dialogresult is always false:
-                        this._dialogresult = false;
-                    }
-
-                    //this.OnClosed(EventArgs.Empty);
-                    //this.UnSubscribeFromEvents();
-                    //this.UnsubscribeFromTemplatePartEvents();
-
-                    //if (Application.Current.RootVisual != null)
-                    //{
-                    //    Application.Current.RootVisual.GotFocus -= new RoutedEventHandler(this.RootVisual_GotFocus);
-                    //}
-                }
-            }
-            else
-            {
-                // If the Close is cancelled, DialogResult should always be NULL:
-                this._dialogresult = null;
-                this.InteractionState = WindowInteractionState.Running;
-            }
-        }
-
-        /// <summary>
-        /// Brings the window to the front of others
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        internal void ContentRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
-        {
-            BringToFront();
-        }
-
-        /// <summary>
-        /// Executed when the CloseButton is clicked.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Routed event args.</param>
-        internal void CloseButton_Click(object sender, RoutedEventArgs e)
-        {
-            this.Close();
-        }
-
-        /// <summary>
-        /// Executed when the Closing storyboard ends.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Event args.</param>
-        private void Closing_Completed(object sender, EventArgs e)
-        {
-            if (this.ChildWindowPopup != null)
-            {
-                this.ChildWindowPopup.IsOpen = false;
-            }
-
-            // AutomationPeer returns "NotResponding" when the FloatableWindow is closed:
-            this.InteractionState = WindowInteractionState.NotResponding;
-
-            if (this._closed != null)
-            {
-                this._closed.Completed -= new EventHandler(this.Closing_Completed);
-            }
-        }
-
-        /// <summary>
-        /// Executed when the a key is presses when the window is open.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Key event args.</param>
-        private void ChildWindow_KeyDown(object sender, KeyEventArgs e)
-        {
-            FloatableWindow ew = sender as FloatableWindow;
-            Debug.Assert(ew != null, "FloatableWindow instance is null.");
-
-            // Ctrl+Shift+F4 closes the FloatableWindow
-            if (e != null && !e.Handled && e.Key == Key.F4 &&
-                ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) &&
-                ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift))
-            {
-                ew.Close();
-                e.Handled = true;
-            }
-        }
-
-        /// <summary>
-        /// Executed when the window loses focus.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Routed event args.</param>
-        private void ChildWindow_LostFocus(object sender, RoutedEventArgs e)
-        {
-            // If the FloatableWindow loses focus but the popup is still open,
-            // it means another popup is opened. To get the focus back when the
-            // popup is closed, we handle GotFocus on the RootVisual
-            // TODO: Something else could get focus and handle the GotFocus event right.  
-            // Try listening to routed events that were Handled (new SL 3 feature)
-            // Blocked by Jolt bug #29419
-            if (this.IsOpen && Application.Current != null && Application.Current.RootVisual != null)
-            {
-                this.InteractionState = WindowInteractionState.BlockedByModalWindow;
-                Application.Current.RootVisual.GotFocus += new RoutedEventHandler(this.RootVisual_GotFocus);
-            }
-        }
-
-        /// <summary>
-        /// Executed when mouse left button is down on the chrome.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Mouse button event args.</param>
-        private void Chrome_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
-        {
-            if (this._chrome != null)
-            {
-                e.Handled = true;
-
-                if (this.CloseButton != null && !this.CloseButton.IsTabStop)
-                {
-                    this.CloseButton.IsTabStop = true;
-                    try
-                    {
-                        this.Focus();
-                    }
-                    finally
-                    {
-                        this.CloseButton.IsTabStop = false;
-                    }
-                }
-                else
-                {
-                    this.Focus();
-                }
-                this._chrome.CaptureMouse();
-                this._isMouseCaptured = true;
-                this._clickPoint = e.GetPosition(sender as UIElement);
-#if DEBUG
-                //this.Title = string.Format("X:{0},Y:{1}", this._clickPoint.X.ToString(), this._clickPoint.Y.ToString());
-#endif
-            }
-        }
-
-        /// <summary>
-        /// Executed when mouse left button is up on the chrome.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Mouse button event args.</param>
-        private void Chrome_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
-        {
-            if (this._chrome != null)
-            {
-                //e.Handled = true;
-                this._chrome.ReleaseMouseCapture();
-                this._isMouseCaptured = false;
-            }
-        }
-
-        /// <summary>
-        /// Executed when mouse moves on the chrome.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Mouse event args.</param>
-        private void Chrome_MouseMove(object sender, MouseEventArgs e)
-        {
-            #region New ChildWindow Code not working
-            //if (this._isMouseCaptured && this.ContentRoot != null && Application.Current != null && Application.Current.RootVisual != null)
-            //{
-            //    Point position = e.GetPosition(Application.Current.RootVisual);
-
-            //    GeneralTransform gt = this.ContentRoot.TransformToVisual(Application.Current.RootVisual);
-
-            //    if (gt != null)
-            //    {
-            //        Point p = gt.Transform(this._clickPoint);
-            //        this._windowPosition = gt.Transform(new Point(0, 0));
-
-            //        if (position.X < 0)
-            //        {
-            //            double Y = FindPositionY(p, position, 0);
-            //            position = new Point(0, Y);
-            //        }
-
-            //        if (position.X > this.Width)
-            //        {
-            //            double Y = FindPositionY(p, position, this.Width);
-            //            position = new Point(this.Width, Y);
-            //        }
-
-            //        if (position.Y < 0)
-            //        {
-            //            double X = FindPositionX(p, position, 0);
-            //            position = new Point(X, 0);
-            //        }
-
-            //        if (position.Y > this.Height)
-            //        {
-            //            double X = FindPositionX(p, position, this.Height);
-            //            position = new Point(X, this.Height);
-            //        }
-
-            //        double x = position.X - p.X;
-            //        double y = position.Y - p.Y;
-            //        UpdateContentRootTransform(x, y);
-            //    }
-            //} 
-            #endregion
-            if (this._isMouseCaptured && this.ContentRoot != null)
-            {
-                // If the child window is dragged out of the page, return
-                if (Application.Current != null && Application.Current.RootVisual != null &&
-                    (e.GetPosition(Application.Current.RootVisual).X < 0 || e.GetPosition(Application.Current.RootVisual).Y < 0))
-                {
-                    return;
-                }
-
-                TransformGroup transformGroup = this.ContentRoot.RenderTransform as TransformGroup;
-
-                if (transformGroup == null)
-                {
-                    transformGroup = new TransformGroup();
-                    transformGroup.Children.Add(this.ContentRoot.RenderTransform);
-                }
-
-                TranslateTransform t = new TranslateTransform();
-                t.X = e.GetPosition(this.ContentRoot).X - this._clickPoint.X;
-                t.Y = e.GetPosition(this.ContentRoot).Y - this._clickPoint.Y;
-                if (transformGroup != null)
-                {
-                    transformGroup.Children.Add(t);
-                    this.ContentRoot.RenderTransform = transformGroup;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Finds the X coordinate of a point that is defined by a line.
-        /// </summary>
-        /// <param name="p1">Starting point of the line.</param>
-        /// <param name="p2">Ending point of the line.</param>
-        /// <param name="y">Y coordinate of the point.</param>
-        /// <returns>X coordinate of the point.</returns>
-        private static double FindPositionX(Point p1, Point p2, double y)
-        {
-            if (y == p1.Y || p1.X == p2.X)
-            {
-                return p2.X;
-            }
-
-            Debug.Assert(p1.Y != p2.Y, "Unexpected equal Y coordinates");
-
-            return (((y - p1.Y) * (p1.X - p2.X)) / (p1.Y - p2.Y)) + p1.X;
-        }
-
-        /// <summary>
-        /// Finds the Y coordinate of a point that is defined by a line.
-        /// </summary>
-        /// <param name="p1">Starting point of the line.</param>
-        /// <param name="p2">Ending point of the line.</param>
-        /// <param name="x">X coordinate of the point.</param>
-        /// <returns>Y coordinate of the point.</returns>
-        private static double FindPositionY(Point p1, Point p2, double x)
-        {
-            if (p1.Y == p2.Y || x == p1.X)
-            {
-                return p2.Y;
-            }
-
-            Debug.Assert(p1.X != p2.X, "Unexpected equal X coordinates");
-
-            return (((p1.Y - p2.Y) * (x - p1.X)) / (p1.X - p2.X)) + p1.Y;
-        }
-
-        /// <summary>
-        /// Builds the visual tree for the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> control when a
-        /// new template is applied.
-        /// </summary>
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "No need to split the code into two parts.")]
-        public override void OnApplyTemplate()
-        {
-            this.UnsubscribeFromTemplatePartEvents();
-
-            base.OnApplyTemplate();
-
-            this.CloseButton = GetTemplateChild(PART_CloseButton) as ButtonBase;
-
-            if (this.CloseButton != null)
-            {
-                if (this.HasCloseButton)
-                {
-                    this.CloseButton.Visibility = Visibility.Visible;
-                }
-                else
-                {
-                    this.CloseButton.Visibility = Visibility.Collapsed;
-                }
-            }
-
-            if (this._closed != null)
-            {
-                this._closed.Completed -= new EventHandler(this.Closing_Completed);
-            }
-
-            if (this._opened != null)
-            {
-                this._opened.Completed -= new EventHandler(this.Opening_Completed);
-            }
-
-            this._root = GetTemplateChild(PART_Root) as FrameworkElement;
-
-            if (this._root != null)
-            {
-                IList groups = VisualStateManager.GetVisualStateGroups(this._root);
-
-                if (groups != null)
-                {
-                    IList states = null;
-
-                    foreach (VisualStateGroup vsg in groups)
-                    {
-                        if (vsg.Name == FloatableWindow.VSMGROUP_Window)
-                        {
-                            states = vsg.States;
-                            break;
-                        }
-                    }
-
-                    if (states != null)
-                    {
-                        foreach (VisualState state in states)
-                        {
-                            if (state.Name == FloatableWindow.VSMSTATE_StateClosed)
-                            {
-                                this._closed = state.Storyboard;
-                            }
-
-                            if (state.Name == FloatableWindow.VSMSTATE_StateOpen)
-                            {
-                                this._opened = state.Storyboard;
-                            }
-                        }
-                    }
-                }
-                //TODO: Figure out why I can't wire up the event below in SubscribeToTemplatePartEvents
-                this._root.MouseLeftButtonDown += new MouseButtonEventHandler(this.ContentRoot_MouseLeftButtonDown);
-            }
-
-            this.ContentRoot = GetTemplateChild(PART_ContentRoot) as FrameworkElement;
-
-            this._chrome = GetTemplateChild(PART_Chrome) as FrameworkElement;
-
-            this.Overlay = GetTemplateChild(PART_Overlay) as Panel;
-
-            this._contentPresenter = GetTemplateChild(PART_ContentPresenter) as FrameworkElement;
-
-            this.SubscribeToTemplatePartEvents();
-            this.SubscribeToStoryBoardEvents();
-            this._desiredMargin = this.Margin;
-            this.Margin = new Thickness(0);
-
-            // Update overlay size
-            if (this.IsOpen && (this.ChildWindowPopup != null))
-            {
-                this._desiredContentHeight = this.Height;
-                this._desiredContentWidth = this.Width;
-                this.UpdateOverlaySize();
-                this.UpdateRenderTransform();
-                this.ChangeVisualState();
-            }
-        }
-
-
-        /// <summary>
-        /// Raises the
-        /// <see cref="E:System.Windows.Controls.FloatableWindow.Closed" /> event.
-        /// </summary>
-        /// <param name="e">The event data.</param>
-        protected virtual void OnClosed(EventArgs e)
-        {
-            EventHandler handler = this.Closed;
-
-            if (null != handler)
-            {
-                handler(this, e);
-            }
-
-            this._isOpen = false;
-            if (!_modal)
-            {
-                this.ParentLayoutRoot.Children.Remove(this);
-            }
-        }
-
-        /// <summary>
-        /// Raises the
-        /// <see cref="E:System.Windows.Controls.FloatableWindow.Closing" /> event.
-        /// </summary>
-        /// <param name="e">The event data.</param>
-        protected virtual void OnClosing(CancelEventArgs e)
-        {
-            EventHandler<CancelEventArgs> handler = this.Closing;
-
-            if (null != handler)
-            {
-                handler(this, e);
-            }
-        }
-
-        /// <summary>
-        /// Returns a
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />
-        /// for use by the Silverlight automation infrastructure.
-        /// </summary>
-        /// <returns>
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />
-        /// for the <see cref="T:System.Windows.Controls.FloatableWindow" /> object.
-        /// </returns>
-        protected override AutomationPeer OnCreateAutomationPeer()
-        {
-            return new FloatableWindowAutomationPeer(this);
-        }
-
-        /// <summary>
-        /// This method is called every time a
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> is displayed.
-        /// </summary>
-        protected virtual void OnOpened()
-        {
-            this.UpdatePosition();
-            this._isOpen = true;
-
-            if (this.Overlay != null)
-            {
-                this.Overlay.Opacity = this.OverlayOpacity;
-                this.Overlay.Background = this.OverlayBrush;
-            }
-
-            if (!this.Focus())
-            {
-                // If the Focus() fails it means there is no focusable element in the 
-                // FloatableWindow. In this case we set IsTabStop to true to have the keyboard functionality
-                this.IsTabStop = true;
-                this.Focus();
-            }
-        }
-
-        /// <summary>
-        /// Executed when the opening storyboard finishes.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Event args.</param>
-        private void Opening_Completed(object sender, EventArgs e)
-        {
-            if (this._opened != null)
-            {
-                this._opened.Completed -= new EventHandler(this.Opening_Completed);
-            }
-            // AutomationPeer returns "ReadyForUserInteraction" when the FloatableWindow 
-            // is open and all animations have been completed.
-            this.InteractionState = WindowInteractionState.ReadyForUserInteraction;
-            this.OnOpened();
-        }
-
-        /// <summary>
-        /// Executed when the page resizes.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Event args.</param>
-        private void Page_Resized(object sender, EventArgs e)
-        {
-            if (this.ChildWindowPopup != null)
-            {
-                this.UpdateOverlaySize();
-            }
-        }
-
-        /// <summary>
-        /// Executed when the root visual gets focus.
-        /// </summary>
-        /// <param name="sender">Sender object.</param>
-        /// <param name="e">Routed event args.</param>
-        private void RootVisual_GotFocus(object sender, RoutedEventArgs e)
-        {
-            this.Focus();
-            this.InteractionState = WindowInteractionState.ReadyForUserInteraction;
-        }
-
-        public void Show()
-        {
-            ShowWindow(false);
-        }
-
-        public void ShowDialog()
-        {
-            _verticalOffset = 0;
-            _horizontalOffset = 0;
-            ShowWindow(true);
-        }
-
-        public void Show(double horizontalOffset, double verticalOffset)
-        {
-            _horizontalOffset = horizontalOffset;
-            _verticalOffset = verticalOffset;
-            ShowWindow(false);
-        }
-
-        /// <summary>
-        /// Opens a <see cref="T:System.Windows.Controls.FloatableWindow" /> and
-        /// returns without waiting for the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> to close.
-        /// </summary>
-        /// <exception cref="T:System.InvalidOperationException">
-        /// The child window is already in the visual tree.
-        /// </exception>
-        internal void ShowWindow(bool isModal)
-        {
-            _modal = isModal;
-
-            // AutomationPeer returns "Running" when Show() is called
-            // but the FloatableWindow is not ready for user interaction:
-            this.InteractionState = WindowInteractionState.Running;
-
-            this.SubscribeToEvents();
-            this.SubscribeToTemplatePartEvents();
-            this.SubscribeToStoryBoardEvents();
-
-
-            // MaxHeight and MinHeight properties should not be overwritten:
-            this.MaxHeight = double.PositiveInfinity;
-            this.MaxWidth = double.PositiveInfinity;
-
-            if (_modal)
-            {
-                if (this.ChildWindowPopup == null)
-                {
-                    this.ChildWindowPopup = new Popup();
-
-                    try
-                    {
-                        this.ChildWindowPopup.Child = this;
-                    }
-                    catch (ArgumentException)
-                    {
-                        // If the FloatableWindow is already in the visualtree, we cannot set it to be the child of the popup
-                        // we are throwing a friendlier exception for this case:
-                        this.InteractionState = WindowInteractionState.NotResponding;
-                        throw new InvalidOperationException("Cannot call Show() on a ChildWindow that is in the visual tree. ChildWindow should be the top-most element in the .xaml file.");
-                    }
-                }
-
-                if (this.ChildWindowPopup != null && Application.Current.RootVisual != null)
-                {
-                    this.ChildWindowPopup.IsOpen = true;
-
-                    this.ChildWindowPopup.HorizontalOffset = _horizontalOffset;
-                    this.ChildWindowPopup.VerticalOffset = _verticalOffset;
-
-                    // while the FloatableWindow is open, the DialogResult is always NULL:
-                    this._dialogresult = null;
-                }
-            }
-            else
-            {
-                if (ParentLayoutRoot != null)
-                {
-                    var canvas = ParentLayoutRoot as Canvas;
-                    if (canvas != null)
-                    {
-                        this.SetValue(Canvas.TopProperty, _verticalOffset);
-                        this.SetValue(Canvas.LeftProperty, _horizontalOffset);
-                    }
-                    else
-                    {
-                        this.HorizontalAlignment = HorizontalAlignment.Left;
-                        this.VerticalAlignment = VerticalAlignment.Top;
-                    }
-
-                    this.ParentLayoutRoot.Children.Add(this);
-                    this.BringToFront();
-                }
-                else
-                {
-                    throw new ArgumentNullException("ParentLayoutRoot", "You need to specify a root Panel element to add the window elements to.");
-                }
-            }
-
-            // disable the underlying UI
-            if (RootVisual != null && _modal)
-            {
-                RootVisual.IsEnabled = false;
-            }
-
-            // if the template is already loaded, display loading visuals animation
-            if (this.ContentRoot == null)
-            {
-                this.Loaded += (s, args) =>
-                {
-                    if (this.ContentRoot != null)
-                    {
-                        this.ChangeVisualState();
-                    }
-                };
-            }
-            else
-            {
-                this.ChangeVisualState();
-            } 
-        }
-
-        /// <summary>
-        /// Subscribes to events when the FloatableWindow is opened.
-        /// </summary>
-        private void SubscribeToEvents()
-        {
-            if (Application.Current != null && Application.Current.Host != null && Application.Current.Host.Content != null)
-            {
-                Application.Current.Exit += new EventHandler(this.Application_Exit);
-                Application.Current.Host.Content.Resized += new EventHandler(this.Page_Resized);
-            }
-
-            this.KeyDown += new KeyEventHandler(this.ChildWindow_KeyDown);
-            if (_modal)
-            {
-                this.LostFocus += new RoutedEventHandler(this.ChildWindow_LostFocus);
-            }
-            this.SizeChanged += new SizeChangedEventHandler(this.ChildWindow_SizeChanged);
-        }
-
-        /// <summary>
-        /// Subscribes to events that are on the storyboards. 
-        /// Unsubscribing from these events happen in the event handlers individually.
-        /// </summary>
-        private void SubscribeToStoryBoardEvents()
-        {
-            if (this._closed != null)
-            {
-                this._closed.Completed += new EventHandler(this.Closing_Completed);
-            }
-
-            if (this._opened != null)
-            {
-                this._opened.Completed += new EventHandler(this.Opening_Completed);
-            }
-        }
-
-        /// <summary>
-        /// Subscribes to events on the template parts.
-        /// </summary>
-        private void SubscribeToTemplatePartEvents()
-        {
-            if (this.CloseButton != null)
-            {
-                this.CloseButton.Click += new RoutedEventHandler(this.CloseButton_Click);
-            }
-
-            if (this._chrome != null)
-            {
-                this._chrome.MouseLeftButtonDown += new MouseButtonEventHandler(this.Chrome_MouseLeftButtonDown);
-                this._chrome.MouseLeftButtonUp += new MouseButtonEventHandler(this.Chrome_MouseLeftButtonUp);
-                this._chrome.MouseMove += new MouseEventHandler(this.Chrome_MouseMove);
-            }
-
-        }
-
-        /// <summary>
-        /// Unsubscribe from events when the FloatableWindow is closed.
-        /// </summary>
-        private void UnSubscribeFromEvents()
-        {
-            if (Application.Current != null && Application.Current.Host != null && Application.Current.Host.Content != null)
-            {
-                Application.Current.Exit -= new EventHandler(this.Application_Exit);
-                Application.Current.Host.Content.Resized -= new EventHandler(this.Page_Resized);
-            }
-
-            this.KeyDown -= new KeyEventHandler(this.ChildWindow_KeyDown);
-            if (_modal)
-            {
-                this.LostFocus -= new RoutedEventHandler(this.ChildWindow_LostFocus);
-            }
-            this.SizeChanged -= new SizeChangedEventHandler(this.ChildWindow_SizeChanged);
-        }
-
-        /// <summary>
-        /// Unsubscribe from the events that are subscribed on the template part elements.
-        /// </summary>
-        private void UnsubscribeFromTemplatePartEvents()
-        {
-            if (this.CloseButton != null)
-            {
-                this.CloseButton.Click -= new RoutedEventHandler(this.CloseButton_Click);
-            }
-
-            if (this._chrome != null)
-            {
-                this._chrome.MouseLeftButtonDown -= new MouseButtonEventHandler(this.Chrome_MouseLeftButtonDown);
-                this._chrome.MouseLeftButtonUp -= new MouseButtonEventHandler(this.Chrome_MouseLeftButtonUp);
-                this._chrome.MouseMove -= new MouseEventHandler(this.Chrome_MouseMove);
-            }
-        }
-
-        /// <summary>
-        /// Updates the size of the overlay of the window.
-        /// </summary>
-        private void UpdateOverlaySize()
-        {
-            if (_modal)
-            {
-                if (this.Overlay != null && Application.Current != null && Application.Current.Host != null && Application.Current.Host.Content != null)
-                {
-                    this.Height = Application.Current.Host.Content.ActualHeight;
-                    this.Width = Application.Current.Host.Content.ActualWidth;
-                    this.Overlay.Height = this.Height;
-                    this.Overlay.Width = this.Width;
-
-                    if (this.ContentRoot != null)
-                    {
-                        this.ContentRoot.Width = this._desiredContentWidth;
-                        this.ContentRoot.Height = this._desiredContentHeight;
-                        this.ContentRoot.Margin = this._desiredMargin;
-                    }
-                }
-            }
-            else
-            {
-                if (this.Overlay != null)
-                {
-                    this.Overlay.Visibility = Visibility.Collapsed;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Updates the position of the window in case the size of the content changes.
-        /// This allows FloatableWindow only scale from right and bottom.
-        /// </summary>
-        private void UpdatePosition()
-        {
-            if (this.ContentRoot != null && Application.Current != null && Application.Current.RootVisual != null)
-            {
-                GeneralTransform gt = this.ContentRoot.TransformToVisual(Application.Current.RootVisual);
-
-                if (gt != null)
-                {
-                    this._windowPosition = gt.Transform(new Point(0, 0));
-                }
-            }
-        }
-
-        /// <summary>
-        /// Updates the render transform applied on the overlay.
-        /// </summary>
-        private void UpdateRenderTransform()
-        {
-            if (this._root != null && this.ContentRoot != null)
-            {
-                // The Overlay part should not be affected by the render transform applied on the
-                // FloatableWindow. In order to achieve this, we adjust an identity matrix to represent
-                // the _root's transformation, invert it, apply the inverted matrix on the _root, so that 
-                // nothing is affected by the rendertransform, and apply the original transform only on the Content
-                GeneralTransform gt = this._root.TransformToVisual(null);
-                if (gt != null)
-                {
-                    Point p10 = new Point(1, 0);
-                    Point p01 = new Point(0, 1);
-                    Point transform10 = gt.Transform(p10);
-                    Point transform01 = gt.Transform(p01);
-
-                    Matrix transformToRootMatrix = Matrix.Identity;
-                    transformToRootMatrix.M11 = transform10.X;
-                    transformToRootMatrix.M12 = transform10.Y;
-                    transformToRootMatrix.M21 = transform01.X;
-                    transformToRootMatrix.M22 = transform01.Y;
-
-                    MatrixTransform original = new MatrixTransform();
-                    original.Matrix = transformToRootMatrix;
-
-                    InvertMatrix(ref transformToRootMatrix);
-                    MatrixTransform mt = new MatrixTransform();
-                    mt.Matrix = transformToRootMatrix;
-
-                    TransformGroup tg = this._root.RenderTransform as TransformGroup;
-
-                    if (tg != null)
-                    {
-                        tg.Children.Add(mt);
-                    }
-                    else
-                    {
-                        this._root.RenderTransform = mt;
-                    }
-
-                    tg = this.ContentRoot.RenderTransform as TransformGroup;
-
-                    if (tg != null)
-                    {
-                        tg.Children.Add(original);
-                    }
-                    else
-                    {
-                        this.ContentRoot.RenderTransform = original;
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// Updates the ContentRootTranslateTransform.
-        /// </summary>
-        /// <param name="X">X coordinate of the transform.</param>
-        /// <param name="Y">Y coordinate of the transform.</param>
-        private void UpdateContentRootTransform(double X, double Y)
-        {
-            if (this._contentRootTransform == null)
-            {
-                this._contentRootTransform = new TranslateTransform();
-                this._contentRootTransform.X = X;
-                this._contentRootTransform.Y = Y;
-
-                TransformGroup transformGroup = this.ContentRoot.RenderTransform as TransformGroup;
-
-                if (transformGroup == null)
-                {
-                    transformGroup = new TransformGroup();
-                    transformGroup.Children.Add(this.ContentRoot.RenderTransform);
-                }
-                transformGroup.Children.Add(this._contentRootTransform);
-                this.ContentRoot.RenderTransform = transformGroup;
-            }
-            else
-            {
-                this._contentRootTransform.X += X;
-                this._contentRootTransform.Y += Y;
-            }
-        }
-
-
-        private Storyboard GetVisualStateStoryboard(string visualStateGroupName, string visualStateName)
-        {
-            foreach (VisualStateGroup g in VisualStateManager.GetVisualStateGroups((FrameworkElement)this.ContentRoot.Parent))
-            {
-                if (g.Name != visualStateGroupName) continue;
-                foreach (VisualState s in g.States)
-                {
-                    if (s.Name != visualStateName) continue;
-                    return s.Storyboard;
-                }
-            }
-            return null;
-        }
-
-        #endregion Methods
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindowAutomationPeer.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,414 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System.Windows.Automation.Provider;
-using System.Windows.Controls;
-using System.Windows.Media;
-
-namespace System.Windows.Automation.Peers
-{
-    public class FloatableWindowAutomationPeer : FrameworkElementAutomationPeer, IWindowProvider, ITransformProvider
-    {
-        #region Data
-
-        /// <summary>
-        /// Specifies whether the FloatableWindow is the top most element.
-        /// </summary>
-        private bool _isTopMost;
-
-        #endregion Data
-
-        #region Properties
-
-        /// <summary>
-        /// Gets or sets a value indicating whether the FloatableWindow is the top most element.
-        /// </summary>
-        private bool IsTopMostPrivate
-        {
-            get
-            {
-                return this._isTopMost;
-            }
-            set
-            {
-                if (this._isTopMost != value)
-                {
-                    this._isTopMost = value;
-                    this.RaisePropertyChangedEvent(WindowPatternIdentifiers.IsTopmostProperty, !this._isTopMost, this._isTopMost);
-                }
-            }
-        }
-
-        /// <summary>
-        /// Gets the owning FloatableWindow.
-        /// </summary>
-        private FloatableWindow OwningFloatableWindow
-        {
-            get
-            {
-                return (FloatableWindow)Owner;
-            }
-        }
-
-        #endregion Properties
-
-        public FloatableWindowAutomationPeer(FloatableWindow owner)
-            : base(owner)
-        {
-            if (owner == null)
-            {
-                throw new ArgumentNullException("owner");
-            }
-            this.RefreshIsTopMostProperty();
-        }
-
-        #region AutomationPeer overrides
-
-        /// <summary>
-        /// Gets the control pattern for this
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />.
-        /// </summary>
-        /// <param name="patternInterface">
-        /// One of the enumeration values.
-        /// </param>
-        /// <returns>
-        /// The object that implements the pattern interface, or null if the
-        /// specified pattern interface is not implemented by this peer.
-        /// </returns>
-        public override object GetPattern(PatternInterface patternInterface)
-        {
-            if (patternInterface == PatternInterface.Transform || patternInterface == PatternInterface.Window)
-            {
-                return this;
-            }
-
-            return base.GetPattern(patternInterface);
-        }
-
-        /// <summary>
-        /// Gets the
-        /// <see cref="T:System.Windows.Automation.Peers.AutomationControlType" />
-        /// for the element associated with this
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />.
-        /// Called by
-        /// <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.
-        /// </summary>
-        /// <returns>A value of the enumeration.</returns>
-        protected override AutomationControlType GetAutomationControlTypeCore()
-        {
-            return AutomationControlType.Window;
-        }
-
-        /// <summary>
-        /// Gets the name of the class for the object associated with this
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />.
-        /// Called by
-        /// <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.
-        /// </summary>
-        /// <returns>
-        /// A string value that represents the type of the child window.
-        /// </returns>
-        protected override string GetClassNameCore()
-        {
-            return this.Owner.GetType().Name;
-        }
-
-        /// <summary>
-        /// Gets the text label of the
-        /// <see cref="T:System.Windows.Controls.FloatableWindow" /> that is
-        /// associated with this
-        /// <see cref="T:System.Windows.Automation.Peers.FloatableWindowAutomationPeer" />.
-        /// Called by
-        /// <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.
-        /// </summary>
-        /// <returns>
-        /// The text label of the element that is associated with this
-        /// automation peer.
-        /// </returns>
-        protected override string GetNameCore()
-        {
-            string name = base.GetNameCore();
-            if (string.IsNullOrEmpty(name))
-            {
-                AutomationPeer labeledBy = GetLabeledByCore();
-                if (labeledBy != null)
-                {
-                    name = labeledBy.GetName();
-                }
-
-                if (string.IsNullOrEmpty(name) && this.OwningFloatableWindow.Title != null)
-                {
-                    name = this.OwningFloatableWindow.Title.ToString();
-                }
-            }
-            return name;
-        }
-
-        #endregion AutomationPeer overrides
-
-        #region IWindowProvider
-
-        /// <summary>
-        /// Gets the interaction state of the window.
-        /// </summary>
-        /// <value>
-        /// The interaction state of the control, as a value of the enumeration.
-        /// </value>
-        WindowInteractionState IWindowProvider.InteractionState
-        {
-            get
-            {
-                return this.OwningFloatableWindow.InteractionState;
-            }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the window is modal.
-        /// </summary>
-        /// <value>
-        /// True in all cases.
-        /// </value>
-        bool IWindowProvider.IsModal
-        {
-            get { return true; }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the window is the topmost
-        /// element in the z-order of layout.
-        /// </summary>
-        /// <value>
-        /// True if the window is topmost; otherwise, false.
-        /// </value>
-        bool IWindowProvider.IsTopmost
-        {
-            get
-            {
-                return this.IsTopMostPrivate;
-            }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the window can be maximized.
-        /// </summary>
-        /// <value>False in all cases.</value>
-        bool IWindowProvider.Maximizable
-        {
-            get { return false; }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the window can be minimized.
-        /// </summary>
-        /// <value>False in all cases.</value>
-        bool IWindowProvider.Minimizable
-        {
-            get { return false; }
-        }
-
-        /// <summary>
-        /// Gets the visual state of the window.
-        /// </summary>
-        /// <value>
-        /// <see cref="F:System.Windows.Automation.WindowVisualState.Normal" />
-        /// in all cases.
-        /// </value>
-        WindowVisualState IWindowProvider.VisualState
-        {
-            get
-            {
-                return WindowVisualState.Normal;
-            }
-        }
-
-        /// <summary>
-        /// Closes the window.
-        /// </summary>
-        void IWindowProvider.Close()
-        {
-            this.OwningFloatableWindow.Close();
-        }
-
-        /// <summary>
-        /// Changes the visual state of the window (such as minimizing or
-        /// maximizing it).
-        /// </summary>
-        /// <param name="state">
-        /// The visual state of the window to change to, as a value of the
-        /// enumeration.
-        /// </param>
-        void IWindowProvider.SetVisualState(WindowVisualState state)
-        {
-        }
-
-        /// <summary>
-        /// Blocks the calling code for the specified time or until the
-        /// associated process enters an idle state, whichever completes first.
-        /// </summary>
-        /// <param name="milliseconds">
-        /// The amount of time, in milliseconds, to wait for the associated
-        /// process to become idle.
-        /// </param>
-        /// <returns>
-        /// True if the window has entered the idle state; false if the timeout
-        /// occurred.
-        /// </returns>
-        bool IWindowProvider.WaitForInputIdle(int milliseconds)
-        {
-            return false;
-        }
-
-        #endregion IWindowProvider
-
-        #region ITransformProvider
-
-        /// <summary>
-        /// Moves the control.
-        /// </summary>
-        /// <param name="x">
-        /// The absolute screen coordinates of the left side of the control.
-        /// </param>
-        /// <param name="y">
-        /// The absolute screen coordinates of the top of the control.
-        /// </param>
-        void ITransformProvider.Move(double x, double y)
-        {
-            if (x < 0)
-            {
-                x = 0;
-            }
-
-            if (y < 0)
-            {
-                y = 0;
-            }
-
-            if (x > this.OwningFloatableWindow.Width)
-            {
-                x = this.OwningFloatableWindow.Width;
-            }
-
-            if (y > this.OwningFloatableWindow.Height)
-            {
-                y = this.OwningFloatableWindow.Height;
-            }
-
-            FrameworkElement contentRoot = this.OwningFloatableWindow.ContentRoot;
-
-            if (contentRoot != null)
-            {
-                GeneralTransform gt = contentRoot.TransformToVisual(null);
-
-                if (gt != null)
-                {
-                    Point p = gt.Transform(new Point(0, 0));
-
-                    TransformGroup transformGroup = contentRoot.RenderTransform as TransformGroup;
-
-                    if (transformGroup == null)
-                    {
-                        transformGroup = new TransformGroup();
-                        transformGroup.Children.Add(contentRoot.RenderTransform);
-                    }
-
-                    TranslateTransform t = new TranslateTransform();
-                    t.X = x - p.X;
-                    t.Y = y - p.Y;
-
-                    if (transformGroup != null)
-                    {
-                        transformGroup.Children.Add(t);
-                        contentRoot.RenderTransform = transformGroup;
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// Resizes the control.
-        /// </summary>
-        /// <param name="width">The new width of the window, in pixels.</param>
-        /// <param name="height">
-        /// The new height of the window, in pixels.
-        /// </param>
-        void ITransformProvider.Resize(double width, double height)
-        {
-        }
-
-        /// <summary>
-        /// Rotates the control.
-        /// </summary>
-        /// <param name="degrees">
-        /// The number of degrees to rotate the control.  A positive number
-        /// rotates the control clockwise.  A negative number rotates the
-        /// control counterclockwise.
-        /// </param>
-        void ITransformProvider.Rotate(double degrees)
-        {
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the element can be moved.
-        /// </summary>
-        /// <value>True in all cases.</value>
-        bool ITransformProvider.CanMove
-        {
-            get { return true; }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the element can be resized.
-        /// </summary>
-        /// <value>False in all cases.</value>
-        bool ITransformProvider.CanResize
-        {
-            get { return false; }
-        }
-
-        /// <summary>
-        /// Gets a value indicating whether the element can be rotated.
-        /// </summary>
-        /// <value>False in all cases.</value>
-        bool ITransformProvider.CanRotate
-        {
-            get { return false; }
-        }
-
-        #endregion ITransformProvider
-
-        #region Methods
-
-        /// <summary>
-        /// Returns if the FloatableWindow is the top most element.
-        /// </summary>
-        /// <returns>Bool value.</returns>
-        private bool GetIsTopMostCore()
-        {
-            return !(this.OwningFloatableWindow.InteractionState == WindowInteractionState.BlockedByModalWindow);
-        }
-
-        /// <summary>
-        /// Raises PropertyChangedEvent for WindowInteractionStateProperty.
-        /// </summary>
-        /// <param name="oldValue">Old WindowInteractionStateProperty.</param>
-        /// <param name="newValue">New WindowInteractionStateProperty.</param>
-        internal void RaiseInteractionStatePropertyChangedEvent(WindowInteractionState oldValue, WindowInteractionState newValue)
-        {
-            this.RaisePropertyChangedEvent(WindowPatternIdentifiers.WindowInteractionStateProperty, oldValue, newValue);
-            this.RefreshIsTopMostProperty();
-        }
-
-        /// <summary>
-        /// Updates the IsTopMostPrivate property.
-        /// </summary>
-        private void RefreshIsTopMostProperty()
-        {
-            this.IsTopMostPrivate = this.GetIsTopMostCore();
-        }
-
-        #endregion Methods
-    }
-}
-
--- a/SilverlightGlimpse/SilverlightGlimpse/Converters/BoolToValueConverter.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// original code: http://geekswithblogs.net/codingbloke/archive/2010/05/28/a-generic-boolean-value-converter.aspx
-
-using System;
-using System.Globalization;
-using System.Windows.Data;
-using System.Windows.Markup;
-
-namespace SilverlightGlimpse.Converters
-{
-    public class BoolToValueConverter<T> : MarkupExtension, IValueConverter
-    {
-        public T FalseValue { get; set; }
-        public T TrueValue { get; set; }
-
-        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
-        {
-            if (value == null) return FalseValue;
-            return (bool)value ? TrueValue : FalseValue;
-        }
-
-        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
-        {
-            return value != null && value.Equals(TrueValue);
-        }
-
-        public override object ProvideValue(IServiceProvider serviceProvider)
-        {
-            return this;
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightGlimpse/Converters/BoolToVisibilityConverter.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-using System.Windows;
-
-namespace SilverlightGlimpse.Converters
-{
-    public class BoolToVisibilityConverter : BoolToValueConverter<Visibility> { }
-}
--- a/SilverlightGlimpse/SilverlightGlimpse/Diagnostics/PropertyPathHelper.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-using System.Windows;
-using System.Windows.Data;
-
-namespace SilverlightGlimpse.Diagnostics
-{
-    public static class PropertyPathHelper
-    {
-        private static readonly Dummy _dummy = new Dummy();
-
-        public static object GetValue(object source, string propertyPath)
-        {
-            var binding = new Binding(propertyPath)
-                              {
-                                  Mode = BindingMode.OneTime, 
-                                  Source = source
-                              };
-            BindingOperations.SetBinding(_dummy, Dummy.ValueProperty, binding);
-            return _dummy.GetValue(Dummy.ValueProperty);
-        }
-
-        private class Dummy : DependencyObject
-        {
-            public static readonly DependencyProperty ValueProperty =
-                DependencyProperty.Register("Value", 
-                                            typeof (object), 
-                                            typeof (Dummy), 
-                                            new PropertyMetadata(null));
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightGlimpse/Diagnostics/Stopwatch.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-using System;
-
-namespace SilverlightGlimpse.Diagnostics
-{
-    public class Stopwatch
-    {
-        private long _start;
-        private long _end;
-
-        public void Start()
-        {
-            _start = DateTime.Now.Ticks;
-        }
-
-        public void Stop()
-        {
-            _end = DateTime.Now.Ticks;
-        }
-
-        public TimeSpan ElapsedTime { get { return new TimeSpan(_end - _start); }}
-
-        public static Stopwatch StartNew()
-        {
-            var stopwatch = new Stopwatch();
-            stopwatch.Start();
-            return stopwatch;
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Interfaces/IBrokenBindingsService.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-using System.Collections.Generic;
-using System.Windows;
-using SilverlightGlimpse.Models;
-
-namespace SilverlightGlimpse.Interfaces
-{
-    public interface IBrokenBindingsService
-    {
-        void LoadBrokenBindings(UIElement uiElement, IList<BindingError> bindingErrors);
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Interfaces/ILogWriter.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-using System.Collections;
-
-namespace SilverlightGlimpse.Interfaces
-{
-    public interface ILogWriter
-    {
-        void Write(IList log, int maxLogItems, string text, params object[] args);
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Models/BindingError.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-namespace SilverlightGlimpse.Models
-{
-    public class BindingError
-    {
-        #region Fields
-
-        private readonly string _controlName = string.Empty;
-
-        #endregion
-
-        #region Constructor
-
-        public BindingError(string controlName, string controlTypeName, string propertyName, string path)
-        {
-            _controlName = controlName;
-            ControlType = controlTypeName;
-            PropertyName = propertyName;
-            Path = path;
-        }
-
-        #endregion
-
-        #region Properties
-
-        public string ControlName { get { return string.IsNullOrEmpty(_controlName) ? "(none)" : _controlName; } }
-        public string ControlType { get; private set; }
-        public string Path { get; private set; }
-        public string PropertyName { get; private set; }
-        public string ToStringProperty { get { return ToString(); } }
- 
-        #endregion
-
-        #region Methods
-
-        public override string ToString()
-        {
-            return string.Format(
-                "Control Name: {0}, Type: {1}, Property: {2}, Path: {3}",
-                ControlName,
-                ControlType,
-                PropertyName,
-                Path);
-        }
-
-        #endregion
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Models/ValidationWrapper.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-using System.Windows.Controls;
-
-namespace SilverlightGlimpse.Models
-{
-    public class ValidationWrapper
-    {
-        #region Constructor
-
-        public ValidationWrapper(
-            ValidationErrorEventAction enumAction,
-            string controlName,
-            string controlType,
-            string errorContent)
-        {
-            Action = enumAction;
-            ControlName = controlName;
-            ControlType = controlType;
-            ErrorContent = errorContent;
-        }
-
-        #endregion
-
-        #region Properties
-
-        public ValidationErrorEventAction Action { get; private set; }
-        public string ControlName { get; private set; }
-        public string ControlType { get; private set; }
-        public string ErrorContent { get; private set; }
-        public string ToStringProperty { get { return ToString(); } }
-
-        #endregion
-
-        #region Methods
-
-        public override string ToString()
-        {
-            return string.Format(
-                "Validation Action: {0}, Name: {1} Type: {2}, ErrorContent: {3}",
-                Action,
-                ControlName,
-                ControlType,
-                ErrorContent);
-        }
-
-
-        #endregion
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Properties/AppManifest.xml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
->
-    <Deployment.Parts>
-    </Deployment.Parts>
-</Deployment>
--- a/SilverlightGlimpse/SilverlightGlimpse/Properties/AssemblyInfo.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SilverlightGlimpse")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SilverlightGlimpse")]
-[assembly: AssemblyCopyright("Copyright ©  2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("52ef33ca-e923-41ef-a7c8-98ec475bc956")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
--- a/SilverlightGlimpse/SilverlightGlimpse/Services/BrokenBindingsService.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Reflection;
-using System.Windows;
-using System.Windows.Media;
-using SilverlightGlimpse.Diagnostics;
-using SilverlightGlimpse.Interfaces;
-using SilverlightGlimpse.Models;
-
-namespace SilverlightGlimpse.Services
-{
-    public class BrokenBindingsService : IBrokenBindingsService
-    {
-        public void LoadBrokenBindings(UIElement uiElement, IList<BindingError> bindingErrors)
-        {
-            var fe = uiElement as FrameworkElement;
-            if (fe == null) return;
-
-            foreach (var fi in fe.GetType().GetFields(BindingFlags.Public | BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.Static))
-            {
-                if (!ReferenceEquals(fi.FieldType, typeof(DependencyProperty))) continue;
-
-                var be = fe.GetBindingExpression((DependencyProperty)fi.GetValue(null));
-
-                if (be == null || be.ParentBinding.Source != null ||
-                    be.ParentBinding.RelativeSource != null) continue;
-
-                var isInherited = false;
-
-                if (fe.DataContext != null && !string.IsNullOrEmpty(be.ParentBinding.Path.Path))
-                {
-                    foreach (var propertyInfo in fe.DataContext.GetType().GetProperties(BindingFlags.Public | BindingFlags.FlattenHierarchy | BindingFlags.Static | BindingFlags.Instance))
-                    {
-                        if (String.Compare(propertyInfo.Name, be.ParentBinding.Path.Path) != 0) continue;
-                        isInherited = true;
-                        break;
-                    }
-                }
-
-                if (isInherited) break;
-
-                //this code handles empty bindings on the Button controls
-                // unsure as to why the Button has an empty or unresolved binding of textblock type...
-                if ((fe.Name == "")
-                    && (fe.GetType().Name == "TextBlock")
-                    && (fi.Name == "TextProperty")
-                    && (be.ParentBinding.Path.Path == ""))
-                {
-                    continue;
-                }
-
-                var value = PropertyPathHelper.GetValue(fe, "Text");
-                if ((value!=null) && value.ToString() != string.Empty)
-                    continue;
-
-                var brokenBinding = new BindingError(
-                    fe.Name,
-                    fe.GetType().Name,
-                    fi.Name,
-                    be.ParentBinding.Path.Path);
-
-                bindingErrors.Add(brokenBinding);
-                Debug.WriteLine("Broken Binding: {0}", brokenBinding);
-            }
-
-            int children = VisualTreeHelper.GetChildrenCount(fe);
-
-            for (int j = 0; j <= children - 1; j++)
-            {
-                var child = VisualTreeHelper.GetChild(fe, j) as FrameworkElement;
-
-                if (child != null)
-                {
-                    LoadBrokenBindings(child, bindingErrors);
-                }
-            }
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightGlimpse/Services/DebugMonitor.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,404 +0,0 @@
-//Original code:  http://www.codeproject.com/Articles/13345/DbMon-NET-A-simple-NET-OutputDebugString-capturer
-//Author: Christian Birkl  http://stackoverflow.com/users/144377/christian-birkl
-
-using System;
-using System.Threading;
-using System.Runtime.InteropServices;
-
-namespace SilverlightGlimpse.Services
-{
-    /// <summary>
-    /// Delegate used when firing DebugMonitor.OnOutputDebug event
-    /// </summary>
-    public delegate void OnOutputDebugStringHandler(int pid, string text);
-
-    /// <summary>
-    /// This class captures all strings passed to <c>OutputDebugString</c> when
-    /// the application is not debugged.	
-    /// </summary>
-    /// <remarks>	
-    ///	This class is a port of Microsofts Visual Studio's C++ example "dbmon", which
-    ///	can be found at <c>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample98/html/vcsmpdbmon.asp</c>.
-    /// </remarks>
-    /// <remarks>
-    ///		<code>
-    ///			public static void Main(string[] args) {
-    ///				DebugMonitor.Start();
-    ///				DebugMonitor.OnOutputDebugString += new OnOutputDebugStringHandler(OnOutputDebugString);
-    ///				Console.WriteLine("Press 'Enter' to exit.");
-    ///				Console.ReadLine();
-    ///				DebugMonitor.Stop();
-    ///			}
-    ///			
-    ///			private static void OnOutputDebugString(int pid, string text) {
-    ///				Console.WriteLine(DateTime.Now + ": " + text);
-    ///			}
-    ///		</code>
-    /// </remarks>
-    public sealed class DebugMonitor
-    {
-
-        /// <summary>
-        /// Private constructor so no one can create a instance
-        /// of this static class
-        /// </summary>
-        private DebugMonitor()
-        {
-        }
-
-        #region Win32 API Imports
-
-        [StructLayout(LayoutKind.Sequential)]
-        private struct SECURITY_DESCRIPTOR
-        {
-            public byte revision;
-            public byte size;
-            public short control;
-            public IntPtr owner;
-            public IntPtr group;
-            public IntPtr sacl;
-            public IntPtr dacl;
-        }
-
-        [StructLayout(LayoutKind.Sequential)]
-        private struct SECURITY_ATTRIBUTES
-        {
-            public int nLength;
-            public IntPtr lpSecurityDescriptor;
-            public int bInheritHandle;
-        }
-
-        [Flags]
-        private enum PageProtection : uint
-        {
-            NoAccess = 0x01,
-            Readonly = 0x02,
-            ReadWrite = 0x04,
-            WriteCopy = 0x08,
-            Execute = 0x10,
-            ExecuteRead = 0x20,
-            ExecuteReadWrite = 0x40,
-            ExecuteWriteCopy = 0x80,
-            Guard = 0x100,
-            NoCache = 0x200,
-            WriteCombine = 0x400,
-        }
-
-
-        private const int WAIT_OBJECT_0 = 0;
-        private const uint INFINITE = 0xFFFFFFFF;
-        private const int ERROR_ALREADY_EXISTS = 183;
-
-        private const uint SECURITY_DESCRIPTOR_REVISION = 1;
-
-        private const uint SECTION_MAP_READ = 0x0004;
-
-        [DllImport("kernel32.dll", SetLastError = true)]
-        private static extern IntPtr MapViewOfFile(IntPtr hFileMappingObject, uint
-            dwDesiredAccess, uint dwFileOffsetHigh, uint dwFileOffsetLow,
-            uint dwNumberOfBytesToMap);
-
-        [DllImport("kernel32.dll", SetLastError = true)]
-        private static extern bool UnmapViewOfFile(IntPtr lpBaseAddress);
-
-        [DllImport("advapi32.dll", SetLastError = true)]
-        private static extern bool InitializeSecurityDescriptor(ref SECURITY_DESCRIPTOR sd, uint dwRevision);
-
-        [DllImport("advapi32.dll", SetLastError = true)]
-        private static extern bool SetSecurityDescriptorDacl(ref SECURITY_DESCRIPTOR sd, bool daclPresent, IntPtr dacl, bool daclDefaulted);
-
-        [DllImport("kernel32.dll")]
-        private static extern IntPtr CreateEvent(ref SECURITY_ATTRIBUTES sa, bool bManualReset, bool bInitialState, string lpName);
-
-        [DllImport("kernel32.dll")]
-        private static extern bool PulseEvent(IntPtr hEvent);
-
-        [DllImport("kernel32.dll")]
-        private static extern bool SetEvent(IntPtr hEvent);
-
-        [DllImport("kernel32.dll", SetLastError = true)]
-        private static extern IntPtr CreateFileMapping(IntPtr hFile,
-            ref SECURITY_ATTRIBUTES lpFileMappingAttributes, PageProtection flProtect, uint dwMaximumSizeHigh,
-            uint dwMaximumSizeLow, string lpName);
-
-        [DllImport("kernel32.dll", SetLastError = true)]
-        private static extern bool CloseHandle(IntPtr hHandle);
-
-        [DllImport("kernel32", SetLastError = true, ExactSpelling = true)]
-        private static extern Int32 WaitForSingleObject(IntPtr handle, uint milliseconds);
-        #endregion
-
-        /// <summary>
-        /// Fired if an application calls <c>OutputDebugString</c>
-        /// </summary>
-        public static event OnOutputDebugStringHandler OnOutputDebugString;
-
-        /// <summary>
-        /// Event handle for slot 'DBWIN_BUFFER_READY'
-        /// </summary>
-        private static IntPtr m_AckEvent = IntPtr.Zero;
-
-        /// <summary>
-        /// Event handle for slot 'DBWIN_DATA_READY'
-        /// </summary>
-        private static IntPtr m_ReadyEvent = IntPtr.Zero;
-
-        /// <summary>
-        /// Handle for our shared file
-        /// </summary>
-        private static IntPtr m_SharedFile = IntPtr.Zero;
-
-        /// <summary>
-        /// Handle for our shared memory
-        /// </summary>
-        private static IntPtr m_SharedMem = IntPtr.Zero;
-
-        /// <summary>
-        /// Our capturing thread
-        /// </summary>
-        private static Thread m_Capturer = null;
-
-        /// <summary>
-        /// Our synchronization root
-        /// </summary>
-        private static object m_SyncRoot = new object();
-
-        /// <summary>
-        /// Mutex for singleton check
-        /// </summary>
-        /// TODO: Work out a mutex equivalent for Silverlight
-        //private static Mutex m_Mutex = null;
-
-        /// <summary>
-        /// Starts this debug monitor
-        /// </summary>
-        public static void Start()
-        {
-            lock (m_SyncRoot)
-            {
-                if (m_Capturer != null)
-                    throw new Exception("This DebugMonitor is already started.");
-
-                // Check for supported operating system. Mono (at least with *nix) won't support
-                // our P/Invoke calls.
-                if (Environment.OSVersion.ToString().IndexOf("Microsoft") == -1)
-                    throw new NotSupportedException("This DebugMonitor is only supported on Microsoft operating systems.");
-
-                // Check for multiple instances. As the README.TXT of the msdn 
-                // example notes it is possible to have multiple debug monitors
-                // listen on OutputDebugString, but the message will be randomly
-                // distributed among all running instances so this won't be
-                // such a good idea.	
-			    // TODO: Work out a mutex equivalent for Silverlight
-                //bool createdNew = false;
-                //m_Mutex = new Mutex(false, typeof(DebugMonitor).Namespace, out createdNew);
-                //if (!createdNew)
-                //    throw new Exception("There is already an instance of 'DbMon.NET' running.");
-
-                SECURITY_DESCRIPTOR sd = new SECURITY_DESCRIPTOR();
-
-                // Initialize the security descriptor.
-                if (!InitializeSecurityDescriptor(ref sd, SECURITY_DESCRIPTOR_REVISION))
-                {
-                    throw CreateApplicationException("Failed to initializes the security descriptor.");
-                }
-
-                // Set information in a discretionary access control list
-                if (!SetSecurityDescriptorDacl(ref sd, true, IntPtr.Zero, false))
-                {
-                    throw CreateApplicationException("Failed to initializes the security descriptor");
-                }
-
-                SECURITY_ATTRIBUTES sa = new SECURITY_ATTRIBUTES();
-
-                // Create the event for slot 'DBWIN_BUFFER_READY'
-                m_AckEvent = CreateEvent(ref sa, false, false, "DBWIN_BUFFER_READY");
-                if (m_AckEvent == IntPtr.Zero)
-                {
-                    throw CreateApplicationException("Failed to create event 'DBWIN_BUFFER_READY'");
-                }
-
-                // Create the event for slot 'DBWIN_DATA_READY'
-                m_ReadyEvent = CreateEvent(ref sa, false, false, "DBWIN_DATA_READY");
-                if (m_ReadyEvent == IntPtr.Zero)
-                {
-                    throw CreateApplicationException("Failed to create event 'DBWIN_DATA_READY'");
-                }
-
-                // Get a handle to the readable shared memory at slot 'DBWIN_BUFFER'.
-                m_SharedFile = CreateFileMapping(new IntPtr(-1), ref sa, PageProtection.ReadWrite, 0, 4096, "DBWIN_BUFFER");
-                if (m_SharedFile == IntPtr.Zero)
-                {
-                    throw CreateApplicationException("Failed to create a file mapping to slot 'DBWIN_BUFFER'");
-                }
-
-                // Create a view for this file mapping so we can access it
-                m_SharedMem = MapViewOfFile(m_SharedFile, SECTION_MAP_READ, 0, 0, 512);
-                if (m_SharedMem == IntPtr.Zero)
-                {
-                    throw CreateApplicationException("Failed to create a mapping view for slot 'DBWIN_BUFFER'");
-                }
-
-                // Start a new thread where we can capture the output
-                // of OutputDebugString calls so we don't block here.
-                m_Capturer = new Thread(new ThreadStart(Capture));
-                m_Capturer.Start();
-            }
-        }
-
-        /// <summary>
-        /// Captures 
-        /// </summary>
-        private static void Capture()
-        {
-            try
-            {
-                // Everything after the first DWORD is our debugging text
-                IntPtr pString = new IntPtr(
-                    m_SharedMem.ToInt32() + Marshal.SizeOf(typeof(int))
-                );
-
-                while (true)
-                {
-                    SetEvent(m_AckEvent);
-
-                    int ret = WaitForSingleObject(m_ReadyEvent, INFINITE);
-
-                    // if we have no capture set it means that someone
-                    // called 'Stop()' and is now waiting for us to exit
-                    // this endless loop.
-                    if (m_Capturer == null)
-                        break;
-
-                    if (ret == WAIT_OBJECT_0)
-                    {
-                        // The first DWORD of the shared memory buffer contains
-                        // the process ID of the client that sent the debug string.
-                        FireOnOutputDebugString(
-                            Marshal.ReadInt32(m_SharedMem),
-                                Marshal.PtrToStringAnsi(pString));
-                    }
-                }
-
-            }
-            catch
-            {
-                throw;
-
-                // Cleanup
-            }
-            finally
-            {
-                Dispose();
-            }
-        }
-
-        private static void FireOnOutputDebugString(int pid, string text)
-        {
-            // Raise event if we have any listeners
-            if (OnOutputDebugString == null)
-                return;
-
-#if !DEBUG
-            try
-            {
-#endif
-                OnOutputDebugString(pid, text);
-#if !DEBUG
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine("An 'OnOutputDebugString' handler failed to execute: " + ex.ToString());
-            }
-#endif
-        }
-
-        /// <summary>
-        /// Dispose all resources
-        /// </summary>
-        private static void Dispose()
-        {
-            // Close AckEvent
-            if (m_AckEvent != IntPtr.Zero)
-            {
-                if (!CloseHandle(m_AckEvent))
-                {
-                    throw CreateApplicationException("Failed to close handle for 'AckEvent'");
-                }
-                m_AckEvent = IntPtr.Zero;
-            }
-
-            // Close ReadyEvent
-            if (m_ReadyEvent != IntPtr.Zero)
-            {
-                if (!CloseHandle(m_ReadyEvent))
-                {
-                    throw CreateApplicationException("Failed to close handle for 'ReadyEvent'");
-                }
-                m_ReadyEvent = IntPtr.Zero;
-            }
-
-            // Close SharedFile
-            if (m_SharedFile != IntPtr.Zero)
-            {
-                if (!CloseHandle(m_SharedFile))
-                {
-                    throw CreateApplicationException("Failed to close handle for 'SharedFile'");
-                }
-                m_SharedFile = IntPtr.Zero;
-            }
-
-
-            // Unmap SharedMem
-            if (m_SharedMem != IntPtr.Zero)
-            {
-                if (!UnmapViewOfFile(m_SharedMem))
-                {
-                    throw CreateApplicationException("Failed to unmap view for slot 'DBWIN_BUFFER'");
-                }
-                m_SharedMem = IntPtr.Zero;
-            }
-            
-            //TODO: Work out replacement for Mutex in Silverlight
-            // Close our mutex
-            //if (m_Mutex != null)
-            //{
-            //    m_Mutex.Close();
-            //    m_Mutex = null;
-            //}
-        }
-
-        /// <summary>
-        /// Stops this debug monitor. This call we block the executing thread
-        /// until this debug monitor is stopped.
-        /// </summary>
-        public static void Stop()
-        {
-            lock (m_SyncRoot)
-            {
-                if (m_Capturer == null)
-                    throw new ObjectDisposedException("DebugMonitor", "This DebugMonitor is not running.");
-                m_Capturer = null;
-                PulseEvent(m_ReadyEvent);
-                while (m_AckEvent != IntPtr.Zero)
-                    ;
-            }
-        }
-
-        /// <summary>
-        /// Helper to create a new exception, which has automaticly the 
-        /// last win 32 error code appended.
-        /// </summary>
-        /// <param name="text">text</param>
-        private static Exception CreateApplicationException(string text)
-        {
-            if (string.IsNullOrEmpty(text)) throw new ArgumentNullException("text", "'text' may not be empty or null.");
-
-            return new Exception(
-                string.Format("{0}. Last Win32 Error was {1}",
-                text, 
-                Marshal.GetLastWin32Error()));
-        }
-
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Services/Glimpse.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-using System;
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Threading;
-using SilverlightGlimpse.Diagnostics;
-using SilverlightGlimpse.Interfaces;
-using SilverlightGlimpse.Views;
-using SilverlightGlimpse.Models;
-using System.Windows.Media;
-
-namespace SilverlightGlimpse.Services
-{
-    public class Glimpse
-    {
-        #region Fields
-
-        private static Glimpse _instance;
-        private DispatcherTimer _refreshBindingCountTimer;
-        private static readonly TimeSpan FiveSeconds = new TimeSpan(0, 0, 0, 5);
-        private const int MAX_LOG_ITEMS = 9;
-        private const string SILVERLIGHT_GLIMPSE = "Silverlight Glimpse";
-        private readonly ILogWriter _logWriter;
-        private readonly IBrokenBindingsService _brokenBindingsService;
-
-        #endregion
-
-        #region Private constructor
-
-        private Glimpse(ILogWriter logWriter, IBrokenBindingsService brokenBindingsService)
-        {
-            BindingErrors = new ObservableCollection<BindingError>();
-            ValidationErrors = new ObservableCollection<ValidationWrapper>();
-            Exceptions = new ObservableCollection<Exception>();
-            Log = new ObservableCollection<string>();
-            _logWriter = logWriter;
-            _brokenBindingsService = brokenBindingsService;
-        }
-
-        #endregion
-
-        #region Properties
-
-        public static Glimpse Service { get { return _instance ?? (_instance = new Glimpse(new LogWriter(), new BrokenBindingsService())); } }
-        internal Application App { get; private set; }
-        internal FloatableWindow GlimpseWindow { get; set;}
-        internal string Title { get; set; }
-        public ObservableCollection<BindingError> BindingErrors { get; private set; }
-        public ObservableCollection<ValidationWrapper> ValidationErrors { get; private set; }
-        public ObservableCollection<Exception> Exceptions { get; private set; }
-        internal FrameworkElement RootVisual { get; private set; }
-        internal TimeSpan BindingsRefreshRate { get; private set; }
-        public ObservableCollection<string> Log { get; private set; }
-        public bool IsInDebugMode
-        {
-            get { 
-#if DEBUG
-                return true;
-#endif
-#pragma warning disable 162
-                return false;
-#pragma warning restore 162
-            }
-        }
-
-        #endregion
-
-        #region Methods
-
-        // Used when application fails to load a rootpage due to an exception.
-        // Silverlight Glimpse becomes the new rootpage.
-        public void DisplayLoadFailure(Application app, Exception ex)
-        {
-            var source = ex.StackTrace.Substring(0, ex.StackTrace.IndexOf(Environment.NewLine, StringComparison.Ordinal));
-            
-            App = app;
-            App.RootVisual = new LoadExceptionViewer(ex, source);
-            Title = SILVERLIGHT_GLIMPSE;
-            Debug.WriteLine("{0} had exception. {1}", Title, ex);
-        }
-
-
-        // Normal loading of Silverlight Glimpse.
-        public void Load(Application app, TimeSpan bindingsRefreshRate = default(TimeSpan))
-        {
-            App = app;
-            RootVisual = App.RootVisual as FrameworkElement;
-            if (RootVisual == null) throw new NullReferenceException("The Application provided did not have a valid RootVisual object");
-            Title = SILVERLIGHT_GLIMPSE;
-            BindingsRefreshRate = (bindingsRefreshRate == default(TimeSpan)) ? FiveSeconds : bindingsRefreshRate;
-            
-            RootVisual.BindingValidationError += HostRootVisual_BindingValidationError;
-            App.UnhandledException += Application_UnhandledException;
-
-            GlimpseWindow = new FloatableWindow
-            {
-                Title = Title,
-                Content = new GlimpseViewer(),
-                ParentLayoutRoot = (Panel) VisualTreeHelper.GetChild(RootVisual, 0)
-            };
-
-            if (Double.IsNaN(RootVisual.Width))
-            {
-                //if the host control is autosized (consumes the browser window) then locate Glimpse in the top, left
-                GlimpseWindow.Show();
-            }
-            else
-            {
-                 //if the host is fixed size then attempt to locate the popup control in the upper right corner
-                var dblLeft = RootVisual.Width - 200;
-
-                if (dblLeft < 0)
-                    dblLeft = 0;
-
-                GlimpseWindow.Show(dblLeft, 10);
-            }
-
-            _brokenBindingsService.LoadBrokenBindings(RootVisual, BindingErrors);
-
-            _refreshBindingCountTimer = new DispatcherTimer();
-            _refreshBindingCountTimer.Tick += RefreshBindingCountTimer_Tick;
-            _refreshBindingCountTimer.Interval = BindingsRefreshRate;
-            _refreshBindingCountTimer.Start();
-        }
-
-        public void Clear()
-        {
-            BindingErrors.Clear();
-            Log.Clear();
-            ValidationErrors.Clear();
-            Exceptions.Clear();
-        }
-
-        #endregion
-
-        #region Events handlers
-
-        // Bindings
-        private void RefreshBindingCountTimer_Tick(object sender, EventArgs e)
-        {
-            var stopwatch = Stopwatch.StartNew();
-
-            _refreshBindingCountTimer.Stop();
-
-            BindingErrors.Clear();
-            _brokenBindingsService.LoadBrokenBindings(RootVisual, BindingErrors);
-
-            stopwatch.Stop();
-            _logWriter.Write(Log, MAX_LOG_ITEMS, "Refreshing the binding errors took {0} {1}", stopwatch.ElapsedTime.Milliseconds, "ms");
-
-            _refreshBindingCountTimer.Start();
-        }
-
-        // Validation
-        private void HostRootVisual_BindingValidationError(object sender, ValidationErrorEventArgs e)
-        {
-            var controlName = "(none)";
-            var control = e.OriginalSource as Control;
-
-            if (control != null && !string.IsNullOrEmpty(control.Name))
-            {
-                controlName = control.Name;
-            }
-
-            ValidationErrors.Add(
-                new ValidationWrapper(
-                    e.Action, 
-                    controlName,
-                    e.OriginalSource.GetType().Name, 
-                    e.Error.ErrorContent.ToString()));
-        }
-
-        // Exceptions
-        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
-        {
-            Debug.WriteLine("{0} had exception.  {1}", Title, e.ExceptionObject);
-
-            Exception ex = e.ExceptionObject;
-
-            while (ex != null)
-            {
-                // TODO: Decide whether inner exceptions should be viewable separately
-                this.Exceptions.Add(ex);
-                ex = ex.InnerException;
-            }
-
-            e.Handled = true;
-        }
-
-        #endregion
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Services/LogWriter.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-using System;
-using System.Collections;
-using SilverlightGlimpse.Interfaces;
-
-namespace SilverlightGlimpse.Services
-{
-    public class LogWriter : ILogWriter
-    {
-        public void Write(IList log, int maxLogItems, string text, params object[] args)
-        {
-            var date = DateTime.Now.ToString("HH:mm:ss.ffff");
-            log.Add(string.Concat(date, "\t", string.Format(text, args)));
-            if (log.Count > maxLogItems) log.RemoveAt(0);
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightGlimpse/SilverlightGlimpse.csproj	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.50727</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{BB51026B-2864-4389-AACA-0BBDF1926E46}</ProjectGuid>
-    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>SilverlightGlimpse</RootNamespace>
-    <AssemblyName>SilverlightGlimpse</AssemblyName>
-    <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
-    <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
-    <SilverlightApplication>true</SilverlightApplication>
-    <SupportedCultures>
-    </SupportedCultures>
-    <XapOutputs>true</XapOutputs>
-    <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
-    <XapFilename>SilverlightGlimpse.xap</XapFilename>
-    <SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
-    <SilverlightAppEntry>SilverlightGlimpse.App</SilverlightAppEntry>
-    <TestPageFileName>SilverlightGlimpseTestPage.html</TestPageFileName>
-    <CreateTestPage>true</CreateTestPage>
-    <ValidateXaml>true</ValidateXaml>
-    <EnableOutOfBrowser>false</EnableOutOfBrowser>
-    <OutOfBrowserSettingsFile>Properties\OutOfBrowserSettings.xml</OutOfBrowserSettingsFile>
-    <UsePlatformExtensions>false</UsePlatformExtensions>
-    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
-    <LinkedServerProject>
-    </LinkedServerProject>
-  </PropertyGroup>
-  <!-- This property group is only here to support building this project using the 
-       MSBuild 3.5 toolset. In order to work correctly with this older toolset, it needs 
-       to set the TargetFrameworkVersion to v3.5 -->
-  <PropertyGroup Condition="'$(MSBuildToolsVersion)' == '3.5'">
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>Bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>
-    <NoStdLib>true</NoStdLib>
-    <NoConfig>true</NoConfig>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>Bin\Release</OutputPath>
-    <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
-    <NoStdLib>true</NoStdLib>
-    <NoConfig>true</NoConfig>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="mscorlib" />
-    <Reference Include="System.Windows" />
-    <Reference Include="system" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Windows.Controls, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\Libs\System.Windows.Controls.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Diagnostics\PropertyPathHelper.cs" />
-    <Compile Include="Services\BrokenBindingsService.cs" />
-    <Compile Include="Interfaces\IBrokenBindingsService.cs" />
-    <Compile Include="Interfaces\ILogWriter.cs" />
-    <Compile Include="Services\LogWriter.cs" />
-    <Compile Include="Views\BindingsViewer.xaml.cs">
-      <DependentUpon>BindingsViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\ValidationsViewer.xaml.cs">
-      <DependentUpon>ValidationsViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\GlimpseViewer.xaml.cs">
-      <DependentUpon>GlimpseViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\LoadExceptionViewer.xaml.cs">
-      <DependentUpon>LoadExceptionViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Views\ExceptionsViewer.xaml.cs">
-      <DependentUpon>ExceptionsViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Controls\FloatableWindow\FloatableWindow.cs" />
-    <Compile Include="Controls\FloatableWindow\FloatableWindowAutomationPeer.cs" />
-    <Compile Include="Views\LogViewer.xaml.cs">
-      <DependentUpon>LogViewer.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Converters\BoolToValueConverter.cs" />
-    <Compile Include="Converters\BoolToVisibilityConverter.cs" />
-    <Compile Include="Models\BindingError.cs" />
-    <Compile Include="Models\ValidationWrapper.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Services\Glimpse.cs" />
-    <Compile Include="Diagnostics\Stopwatch.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Page Include="Views\BindingsViewer.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Views\ValidationsViewer.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Page Include="Views\GlimpseViewer.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Views\LoadExceptionViewer.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Views\ExceptionsViewer.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Views\LogViewer.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </Page>
-    <Page Include="Themes\generic.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Properties\AppManifest.xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="ToDo.txt" />
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
-        <SilverlightProjectProperties />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Themes/generic.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                    xmlns:controls="clr-namespace:System.Windows.Controls"
-                    xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows">
-
-    <Style TargetType="controls:FloatableWindow">
-        <Setter Property="IsTabStop" Value="false" />
-        <Setter Property="TabNavigation" Value="Cycle" />
-        <Setter Property="HorizontalAlignment" Value="Center" />
-        <Setter Property="VerticalAlignment" Value="Center" />
-        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
-        <Setter Property="VerticalContentAlignment" Value="Stretch" />
-        <Setter Property="BorderThickness" Value="1" />
-        <Setter Property="BorderBrush">
-            <Setter.Value>
-                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                    <GradientStop Offset="0" Color="#FFA3AEB9" />
-                    <GradientStop Offset="0.375" Color="#FF8399A9" />
-                    <GradientStop Offset="0.375" Color="#FF718597" />
-                    <GradientStop Offset="1" Color="#FF617584" />
-                </LinearGradientBrush>
-            </Setter.Value>
-        </Setter>
-        <Setter Property="OverlayBrush">
-            <Setter.Value>
-                <SolidColorBrush Color="#7F000000" />
-            </Setter.Value>
-        </Setter>
-        <Setter Property="OverlayOpacity" Value="1" />
-        <Setter Property="Template">
-            <Setter.Value>
-                <ControlTemplate TargetType="controls:FloatableWindow">
-                    <Grid x:Name="Root">
-                        <Grid.Resources>
-                            <Style x:Key="ButtonStyle" TargetType="Button">
-                                <Setter Property="Background" Value="#FF1F3B53" />
-                                <Setter Property="Foreground" Value="#FF000000" />
-                                <Setter Property="Padding" Value="3" />
-                                <Setter Property="BorderThickness" Value="1" />
-                                <Setter Property="BorderBrush">
-                                    <Setter.Value>
-                                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                                            <GradientStop Offset="0" Color="#FFA3AEB9" />
-                                            <GradientStop Offset="0.375" Color="#FF8399A9" />
-                                            <GradientStop Offset="0.375" Color="#FF718597" />
-                                            <GradientStop Offset="1" Color="#FF617584" />
-                                        </LinearGradientBrush>
-                                    </Setter.Value>
-                                </Setter>
-                                <Setter Property="Template">
-                                    <Setter.Value>
-                                        <ControlTemplate TargetType="Button">
-                                            <Grid x:Name="grid"
-                                                  Width="15"
-                                                  Height="14"
-                                                  HorizontalAlignment="Center"
-                                                  VerticalAlignment="Center"
-                                                  Background="#02FFFFFF">
-                                                <vsm:VisualStateManager.VisualStateGroups>
-                                                    <vsm:VisualStateGroup x:Name="CommonStates">
-                                                        <vsm:VisualState x:Name="Normal" />
-                                                        <vsm:VisualState x:Name="MouseOver">
-                                                            <Storyboard>
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz2" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz1" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz0" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                                <DoubleAnimation Duration="0"
-                                                                                 Storyboard.TargetName="X"
-                                                                                 Storyboard.TargetProperty="Opacity"
-                                                                                 To="0.95" />
-                                                            </Storyboard>
-                                                        </vsm:VisualState>
-                                                        <vsm:VisualState x:Name="Pressed">
-                                                            <Storyboard>
-                                                                <DoubleAnimation Duration="0"
-                                                                                 Storyboard.TargetName="X"
-                                                                                 Storyboard.TargetProperty="Opacity"
-                                                                                 To="0.85" />
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz2" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz1" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz0" Storyboard.TargetProperty="Visibility">
-                                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                                </ObjectAnimationUsingKeyFrames>
-                                                            </Storyboard>
-                                                        </vsm:VisualState>
-                                                        <vsm:VisualState x:Name="Disabled">
-                                                            <Storyboard>
-                                                                <DoubleAnimation Duration="0"
-                                                                                 Storyboard.TargetName="X"
-                                                                                 Storyboard.TargetProperty="Opacity"
-                                                                                 To="0.5" />
-                                                            </Storyboard>
-                                                        </vsm:VisualState>
-                                                    </vsm:VisualStateGroup>
-                                                </vsm:VisualStateManager.VisualStateGroups>
-                                                <Path x:Name="X_Fuzz2"
-                                                      Width="9"
-                                                      Height="8"
-                                                      Margin="0,-1,0,0"
-                                                      HorizontalAlignment="Center"
-                                                      VerticalAlignment="Center"
-                                                      Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z"
-                                                      Fill="#14C51900"
-                                                      Opacity="1"
-                                                      RenderTransformOrigin="0.5,0.5"
-                                                      Stretch="Fill"
-                                                      Stroke="#14C51900"
-                                                      Visibility="Collapsed">
-                                                    <Path.RenderTransform>
-                                                        <TransformGroup>
-                                                            <ScaleTransform ScaleX="1.3" ScaleY="1.3" />
-                                                        </TransformGroup>
-                                                    </Path.RenderTransform>
-                                                </Path>
-                                                <Path x:Name="X_Fuzz1"
-                                                      Width="9"
-                                                      Height="8"
-                                                      Margin="0,-1,0,0"
-                                                      HorizontalAlignment="Center"
-                                                      VerticalAlignment="Center"
-                                                      Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z"
-                                                      Fill="#1EC51900"
-                                                      Opacity="1"
-                                                      RenderTransformOrigin="0.5,0.5"
-                                                      Stretch="Fill"
-                                                      Stroke="#1EC51900"
-                                                      Visibility="Collapsed">
-                                                    <Path.RenderTransform>
-                                                        <TransformGroup>
-                                                            <ScaleTransform ScaleX="1.1" ScaleY="1.1" />
-                                                        </TransformGroup>
-                                                    </Path.RenderTransform>
-                                                </Path>
-                                                <Path x:Name="X_Fuzz0"
-                                                      Width="9"
-                                                      Height="8"
-                                                      Margin="0,-1,0,0"
-                                                      HorizontalAlignment="Center"
-                                                      VerticalAlignment="Center"
-                                                      Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z"
-                                                      Fill="#FFC51900"
-                                                      Opacity="1"
-                                                      Stretch="Fill"
-                                                      Stroke="#FFC51900"
-                                                      Visibility="Collapsed" />
-                                                <Path x:Name="X"
-                                                      Width="9"
-                                                      Height="8"
-                                                      Margin="0,-1,0,0"
-                                                      HorizontalAlignment="Center"
-                                                      VerticalAlignment="Center"
-                                                      Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z"
-                                                      Fill="#FFFFFFFF"
-                                                      Opacity="0.7"
-                                                      Stretch="Fill">
-                                                    <Path.Stroke>
-                                                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                                                            <GradientStop Offset="1" Color="#FF313131" />
-                                                            <GradientStop Offset="0" Color="#FF8E9092" />
-                                                        </LinearGradientBrush>
-                                                    </Path.Stroke>
-                                                </Path>
-                                            </Grid>
-                                        </ControlTemplate>
-                                    </Setter.Value>
-                                </Setter>
-                            </Style>
-                        </Grid.Resources>
-                        <vsm:VisualStateManager.VisualStateGroups>
-                            <vsm:VisualStateGroup x:Name="WindowStates">
-                                <vsm:VisualState x:Name="Open">
-                                    <Storyboard>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="Overlay"
-                                                                       Storyboard.TargetProperty="Opacity">
-                                            <EasingDoubleKeyFrame KeyTime="0" Value="0" />
-                                            <EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="1" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="ContentRoot"
-                                                                       Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX">
-                                            <SplineDoubleKeyFrame KeyTime="0" Value="0" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="0" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="1" />
-                                            <SplineDoubleKeyFrame KeySpline="0,0,0.5,1"
-                                                                  KeyTime="00:00:00.45"
-                                                                  Value="1.05" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.55" Value="1" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="ContentRoot"
-                                                                       Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleY">
-                                            <SplineDoubleKeyFrame KeyTime="0" Value="0" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="0" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="1" />
-                                            <SplineDoubleKeyFrame KeySpline="0,0,0.5,1"
-                                                                  KeyTime="00:00:00.45"
-                                                                  Value="1.05" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.55" Value="1" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                    </Storyboard>
-                                </vsm:VisualState>
-                                <vsm:VisualState x:Name="Closed">
-                                    <Storyboard>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="Overlay"
-                                                                       Storyboard.TargetProperty="Opacity">
-                                            <EasingDoubleKeyFrame KeyTime="0" Value="1" />
-                                            <EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="0" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="ContentRoot"
-                                                                       Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX">
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1.05" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.45" Value="0" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                       Storyboard.TargetName="ContentRoot"
-                                                                       Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleY">
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1.05" />
-                                            <SplineDoubleKeyFrame KeyTime="00:00:00.45" Value="0" />
-                                        </DoubleAnimationUsingKeyFrames>
-                                    </Storyboard>
-                                </vsm:VisualState>
-                            </vsm:VisualStateGroup>
-                        </vsm:VisualStateManager.VisualStateGroups>
-                        <Grid x:Name="Overlay"
-                              Margin="0"
-                              HorizontalAlignment="Stretch"
-                              VerticalAlignment="Top"
-                              Background="{TemplateBinding OverlayBrush}"
-                              Opacity="{TemplateBinding OverlayOpacity}" />
-                        <Grid x:Name="ContentRoot"
-                              Width="{TemplateBinding Width}"
-                              Height="{TemplateBinding Height}"
-                              HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
-                              VerticalAlignment="{TemplateBinding VerticalAlignment}"
-                              RenderTransformOrigin="0.5,0.5">
-                            <Grid.RenderTransform>
-                                <TransformGroup>
-                                    <ScaleTransform />
-                                    <SkewTransform />
-                                    <RotateTransform />
-                                    <TranslateTransform />
-                                </TransformGroup>
-                            </Grid.RenderTransform>
-                            <Border Margin="-1"
-                                    HorizontalAlignment="Stretch"
-                                    VerticalAlignment="Stretch"
-                                    Background="#14000000"
-                                    BorderBrush="#14000000"
-                                    BorderThickness="1"
-                                    CornerRadius="2" />
-                            <Border Margin="-2"
-                                    HorizontalAlignment="Stretch"
-                                    VerticalAlignment="Stretch"
-                                    Background="#0F000000"
-                                    BorderBrush="#0F000000"
-                                    BorderThickness="1"
-                                    CornerRadius="2.25" />
-                            <Border Margin="-3"
-                                    HorizontalAlignment="Stretch"
-                                    VerticalAlignment="Stretch"
-                                    Background="#0C000000"
-                                    BorderBrush="#0C000000"
-                                    BorderThickness="1"
-                                    CornerRadius="2.5" />
-                            <Border Margin="-4"
-                                    HorizontalAlignment="Stretch"
-                                    VerticalAlignment="Stretch"
-                                    Background="#0A000000"
-                                    BorderBrush="#0A000000"
-                                    BorderThickness="1"
-                                    CornerRadius="2.75" />
-                            <Border Background="#FFFFFFFF"
-                                    BorderBrush="{TemplateBinding BorderBrush}"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    CornerRadius="2">
-                                <Border Margin="1" CornerRadius="1.5">
-                                    <Border.Background>
-                                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                                            <GradientStop Offset="1" Color="#FFE5E8EB" />
-                                            <GradientStop Offset="0" Color="#FFF6F8F9" />
-                                        </LinearGradientBrush>
-                                    </Border.Background>
-                                    <Grid>
-                                        <Grid.RowDefinitions>
-                                            <RowDefinition Height="Auto" />
-                                            <RowDefinition />
-                                        </Grid.RowDefinitions>
-                                        <Border x:Name="Chrome"
-                                                Width="Auto"
-                                                BorderBrush="#FFFFFFFF"
-                                                BorderThickness="0,0,0,1">
-                                            <Border.Background>
-                                                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,0.528">
-                                                    <GradientStop Offset="1" Color="#FFE5E8EB" />
-                                                    <GradientStop Offset="0" Color="#FFFEFEFE" />
-                                                </LinearGradientBrush>
-                                            </Border.Background>
-                                            <Grid Width="Auto" Height="Auto">
-                                                <Grid.ColumnDefinitions>
-                                                    <ColumnDefinition />
-                                                    <ColumnDefinition Width="30" />
-                                                </Grid.ColumnDefinitions>
-                                                <ContentControl Margin="6,0,6,0"
-                                                                HorizontalAlignment="Stretch"
-                                                                VerticalAlignment="Center"
-                                                                Content="{TemplateBinding Title}"
-                                                                FontWeight="Bold"
-                                                                IsTabStop="False" />
-                                                <Button x:Name="CloseButton"
-                                                        Grid.Column="1"
-                                                        Width="15"
-                                                        Height="14"
-                                                        HorizontalAlignment="Center"
-                                                        VerticalAlignment="Center"
-                                                        IsTabStop="False"
-                                                        Style="{StaticResource ButtonStyle}" />
-                                            </Grid>
-                                        </Border>
-                                        <Border Grid.Row="1"
-                                                Margin="7"
-                                                Background="{TemplateBinding Background}">
-                                            <ContentPresenter x:Name="ContentPresenter"
-                                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
-                                                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
-                                                              Content="{TemplateBinding Content}"
-                                                              ContentTemplate="{TemplateBinding ContentTemplate}" />
-                                        </Border>
-                                    </Grid>
-                                </Border>
-                            </Border>
-                        </Grid>
-                    </Grid>
-                </ControlTemplate>
-            </Setter.Value>
-        </Setter>
-    </Style>
-</ResourceDictionary>
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/ToDo.txt	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-Colours for the numbers
-Numbers on tab headers
-Margin on the open position
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.BindingsViewer"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-
-    <Grid x:Name="LayoutRoot" Background="White">
-
-        <Grid.RowDefinitions>
-            <RowDefinition Height="Auto" />
-            <RowDefinition Height="*" />
-        </Grid.RowDefinitions>
-
-        <StackPanel Grid.Row="0" Orientation="Horizontal">
-            <TextBlock Width="120"
-                       Margin="5,0,0,0"
-                       Text="Control Name" />
-            <TextBlock Width="120" Text="Type" />
-            <TextBlock Width="120" Text="Property" />
-            <TextBlock Width="150" Text="Path" />
-        </StackPanel>
-
-        <ListBox x:Name="lbBindings" Grid.Row="1">
-            <ListBox.ItemTemplate>
-                <DataTemplate>
-                    <StackPanel Orientation="Horizontal" ToolTipService.ToolTip="{Binding ToStringProperty}">
-                        <TextBlock Width="120" Text="{Binding ControlName}" />
-                        <TextBlock Width="120" Text="{Binding ControlType}" />
-                        <TextBlock Width="120" Text="{Binding PropertyName}" />
-                        <TextBlock Text="{Binding Path}" />
-                    </StackPanel>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
-    </Grid>
-</UserControl>
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-using SilverlightGlimpse.Services;
-
-namespace SilverlightGlimpse.Views
-{
-    public partial class BindingsViewer
-    {
-        public BindingsViewer()
-        {
-            InitializeComponent();
-            lbBindings.ItemsSource = Glimpse.Service.BindingErrors;
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/ExceptionsViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.ExceptionsViewer"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-    <Grid x:Name="LayoutRoot">
-        <ListBox x:Name="lbExceptions" ItemsSource="{Binding}" />
-    </Grid>
-</UserControl>
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/ExceptionsViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-using SilverlightGlimpse.Services;
-
-namespace SilverlightGlimpse.Views 
-{
-    public partial class ExceptionsViewer
-    {
-        public ExceptionsViewer()
-        {
-            InitializeComponent();
-            lbExceptions.ItemsSource = Glimpse.Service.Exceptions;
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/GlimpseViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.GlimpseViewer"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
-             xmlns:local="clr-namespace:SilverlightGlimpse.Converters"
-             xmlns:views="clr-namespace:SilverlightGlimpse.Views">
-    <UserControl.Resources>
-        <SolidColorBrush x:Name="noExceptionsFill" Color="SteelBlue" />
-        <SolidColorBrush x:Name="noExceptionsBorder" Color="LightBlue" />
-        <SolidColorBrush x:Name="hasExceptionsFill" Color="Red" />
-        <SolidColorBrush x:Name="hasExceptionsBorder" Color="Salmon" />
-    </UserControl.Resources>
-    <Grid x:Name="LayoutRoot">
-        <Grid x:Name="layoutInstrumentPanel">
-            <Grid.Resources>
-                <Style TargetType="Ellipse">
-                    <Setter Property="Width" Value="40" />
-                    <Setter Property="Height" Value="40" />
-                    <Setter Property="Fill" Value="{StaticResource noExceptionsFill}" />
-                    <Setter Property="Stroke" Value="{StaticResource noExceptionsBorder}" />
-                    <Setter Property="StrokeThickness" Value="3" />
-                    <Setter Property="Margin" Value="7" />
-                </Style>
-                <Style TargetType="TextBlock">
-                    <Setter Property="HorizontalAlignment" Value="Center" />
-                    <Setter Property="VerticalAlignment" Value="Center" />
-                    <Setter Property="FontSize" Value="12" />
-                    <Setter Property="FontWeight" Value="Bold" />
-                    <Setter Property="Foreground" Value="White" />
-                    <Setter Property="Text" Value="0" />
-                </Style>
-            </Grid.Resources>
-
-            <StackPanel Orientation="Horizontal">
-                <Grid>
-                    <Ellipse x:Name="elpBindingErrors" ToolTipService.ToolTip="Binding Exception Count" />
-                    <TextBlock x:Name="tbBindingErrors" Text="{Binding BindingErrors.Count}" />
-                </Grid>
-                <Grid>
-                    <Ellipse x:Name="elpValidationErrors" ToolTipService.ToolTip="Validation Exception Count" />
-                    <TextBlock x:Name="tbValidationErrors" Text="{Binding ValidationErrors.Count}" />
-                </Grid>
-                <Grid>
-                    <Ellipse x:Name="elpUnhandledExceptions" ToolTipService.ToolTip="Unhandled Exception Count" />
-                    <TextBlock x:Name="tbUnhandledExceptions" Text="{Binding Exceptions.Count}" />
-                </Grid>
-                <Button x:Name="btnExpand"
-                        Margin="7"
-                        VerticalAlignment="Center"
-                        Click="btnExpand_Click"
-                        Content="Expand" />
-            </StackPanel>
-        </Grid>
-
-        <Grid x:Name="layoutViewer" Visibility="Collapsed">
-            <Grid.RowDefinitions>
-                <RowDefinition Height="auto" />
-            </Grid.RowDefinitions>
-
-            <StackPanel HorizontalAlignment="Right"
-                        VerticalAlignment="Top"
-                        Orientation="Horizontal">
-                <Button x:Name="btnClear"
-                        Width="60"
-                        Click="btnClear_Click"
-                        Content="Clear" />
-
-                <Button x:Name="btnContract"
-                        Width="60"
-                        Margin="10,0,0,0"
-                        Click="btnContract_Click"
-                        Content="Contract" />
-            </StackPanel>
-
-            <c:TabControl Width="600" Height="250">
-
-                <c:TabItem Header="Binding">
-                    <views:BindingsViewer />
-                </c:TabItem>
-                <c:TabItem Header="Debug" Visibility="{Binding IsInDebugMode, Converter={local:BoolToVisibilityConverter FalseValue=Collapsed, TrueValue=Visible}}">
-                    <views:LogViewer />
-                </c:TabItem>
-                <c:TabItem Header="Validation">
-                    <views:ValidationsViewer />
-                </c:TabItem>
-                <c:TabItem Header="Exception">
-                    <views:ExceptionsViewer />
-                </c:TabItem>
-            </c:TabControl>
-
-        </Grid>
-    </Grid>
-
-</UserControl>
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/GlimpseViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using SilverlightGlimpse.Services;
-
-namespace SilverlightGlimpse.Views
-{
-    public partial class GlimpseViewer
-    {
-        public GlimpseViewer()
-        {
-            InitializeComponent();
-            DataContext = Glimpse.Service;
-        }
-
-        private void AddBinding(FrameworkElement control, object source)
-        {
-            Binding binding = new Binding() {Source = source};
-            control.SetBinding(TextBlock.TextProperty, binding);
-        }
-
-        private void btnContract_Click(object sender, RoutedEventArgs e)
-        {
-            layoutViewer.Visibility = Visibility.Collapsed;
-        }
-
-        private void btnExpand_Click(object sender, RoutedEventArgs e)
-        {
-            layoutViewer.Visibility = Visibility.Visible;
-        }
-
-        private void btnClear_Click(object sender, RoutedEventArgs e)
-        {
-            Glimpse.Service.Clear();
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/LoadExceptionViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.LoadExceptionViewer"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-    <Border Width="700"
-            Height="375"
-            Margin="11"
-            BorderBrush="SteelBlue"
-            BorderThickness="6"
-            CornerRadius="5">
-        <Grid x:Name="LayoutRoot">
-            <Grid.RowDefinitions>
-                <RowDefinition Height="Auto" />
-                <RowDefinition Height="100" />
-                <RowDefinition Height="*" />
-            </Grid.RowDefinitions>
-
-            <Rectangle Fill="SteelBlue" />
-
-            <TextBlock x:Name="txtTitle"
-                       Margin="3.5"
-                       VerticalAlignment="Center"
-                       Foreground="White"
-                       Text="Exception source goes here from code behind" />
-
-            <ListBox x:Name="lbExceptions"
-                     Grid.Row="1"
-                     Margin="3.5"
-                     DisplayMemberPath="Message" />
-
-            <ScrollViewer Grid.Row="2"
-                          Margin="3.5"
-                          Background="White"
-                          DataContext="{Binding ElementName=lbExceptions,
-                                                Path=SelectedItem}">
-                <Grid>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="Auto" />
-                        <RowDefinition Height="Auto" />
-                        <RowDefinition Height="Auto" />
-                        <RowDefinition Height="Auto" />
-                        <RowDefinition Height="Auto" />
-                        <RowDefinition Height="Auto" />
-                    </Grid.RowDefinitions>
-
-                    <TextBlock Text="Message" TextDecorations="Underline" />
-                    <TextBlock Grid.Row="1"
-                               Text="{Binding Path=Message}"
-                               TextWrapping="Wrap" />
-
-                    <TextBlock Grid.Row="2"
-                               Margin="0,11,0,0"
-                               Text="Stack Trace"
-                               TextDecorations="Underline" />
-                    <TextBlock Grid.Row="3"
-                               FontSize="11"
-                               Text="{Binding Path=StackTrace}"
-                               TextWrapping="Wrap" />
-                </Grid>
-            </ScrollViewer>
-        </Grid>
-    </Border>
-
-</UserControl>
-
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/LoadExceptionViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-using System;
-
-namespace SilverlightGlimpse.Views
-{
-    public partial class LoadExceptionViewer
-    {
-        public LoadExceptionViewer()
-        {
-            InitializeComponent();
-        }
-
-        public LoadExceptionViewer(Exception e, string sourceLocation) : this()
-        {
-            txtTitle.Text = string.Concat("Exception ", sourceLocation.TrimStart());
-
-            var ex = e;
-
-            while (ex != null)
-            {
-                lbExceptions.Items.Add(ex);
-                ex = ex.InnerException;
-            }
-
-            if (lbExceptions.Items.Count > 0)
-            {
-                lbExceptions.SelectedIndex = 0;
-            }
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.LogViewer"
-             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"
-             mc:Ignorable="d">
-
-    <Grid x:Name="LayoutRoot">
-        <Grid.RowDefinitions>
-            <RowDefinition Height="*" />
-        </Grid.RowDefinitions>
-
-        <ListBox x:Name="lbLog" />
-    </Grid>
-</UserControl>
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-using SilverlightGlimpse.Services;
-
-namespace SilverlightGlimpse.Views
-{
-    public partial class LogViewer
-    {
-        public LogViewer()
-        {
-            InitializeComponent();
-            lbLog.ItemsSource = Glimpse.Service.Log;
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/ValidationsViewer.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<UserControl x:Class="SilverlightGlimpse.Views.ValidationsViewer"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
-    <Grid x:Name="LayoutRoot">
-        <Grid.RowDefinitions>
-            <RowDefinition Height="Auto" />
-            <RowDefinition Height="*" />
-        </Grid.RowDefinitions>
-
-        <StackPanel Grid.Row="0" Orientation="Horizontal">
-            <TextBlock Width="75"
-                       Margin="5,0,0,0"
-                       Text="Action" />
-            <TextBlock Width="110" Text="Control Name" />
-            <TextBlock Width="130" Text="Type" />
-            <TextBlock Width="150" Text="Error" />
-        </StackPanel>
-
-        <ListBox x:Name="lbValidationErrors" Grid.Row="1">
-            <ListBox.ItemTemplate>
-                <DataTemplate>
-                    <StackPanel Orientation="Horizontal" ToolTipService.ToolTip="{Binding ToStringProperty}">
-                        <TextBlock Width="75" Text="{Binding Action}" />
-                        <TextBlock Width="110" Text="{Binding ControlName}" />
-                        <TextBlock Width="130" Text="{Binding ControlType}" />
-                        <TextBlock Text="{Binding ErrorContent}" />
-                    </StackPanel>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
-    </Grid>
-</UserControl>
--- a/SilverlightGlimpse/SilverlightGlimpse/Views/ValidationsViewer.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-using SilverlightGlimpse.Services;
-
-namespace SilverlightGlimpse.Views 
-{
-    public partial class ValidationsViewer
-    {
-        public ValidationsViewer()
-        {
-            InitializeComponent();
-            lbValidationErrors.ItemsSource = Glimpse.Service.ValidationErrors;
-        }
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightValidation/App.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,997 +0,0 @@
-<Application x:Class="SilverlightValidation.App"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:p="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls"
-             xmlns:s="clr-namespace:System;assembly=mscorlib"
-             xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
-    <Application.Resources>
-        <ControlTemplate x:Key="ValidationToolTipTemplate">
-            <Grid x:Name="Root"
-                  Margin="5,0"
-                  Opacity="0"
-                  RenderTransformOrigin="0,0">
-                <Grid.RenderTransform>
-                    <TranslateTransform x:Name="xform" X="-25" />
-                </Grid.RenderTransform>
-                <VisualStateManager.VisualStateGroups>
-                    <VisualStateGroup x:Name="OpenStates">
-                        <VisualStateGroup.Transitions>
-                            <VisualTransition GeneratedDuration="0" />
-                            <VisualTransition GeneratedDuration="0:0:0.2" To="Open">
-                                <Storyboard>
-                                    <DoubleAnimation Duration="0:0:0.2"
-                                                     Storyboard.TargetName="xform"
-                                                     Storyboard.TargetProperty="X"
-                                                     To="0">
-                                        <DoubleAnimation.EasingFunction>
-                                            <BackEase Amplitude=".3" EasingMode="EaseOut" />
-                                        </DoubleAnimation.EasingFunction>
-                                    </DoubleAnimation>
-                                    <DoubleAnimation Duration="0:0:0.2"
-                                                     Storyboard.TargetName="Root"
-                                                     Storyboard.TargetProperty="Opacity"
-                                                     To="1" />
-                                </Storyboard>
-                            </VisualTransition>
-                        </VisualStateGroup.Transitions>
-                        <VisualState x:Name="Closed">
-                            <Storyboard>
-                                <DoubleAnimation Duration="0"
-                                                 Storyboard.TargetName="Root"
-                                                 Storyboard.TargetProperty="Opacity"
-                                                 To="0" />
-                            </Storyboard>
-                        </VisualState>
-                        <VisualState x:Name="Open">
-                            <Storyboard>
-                                <DoubleAnimation Duration="0"
-                                                 Storyboard.TargetName="xform"
-                                                 Storyboard.TargetProperty="X"
-                                                 To="0" />
-                                <DoubleAnimation Duration="0"
-                                                 Storyboard.TargetName="Root"
-                                                 Storyboard.TargetProperty="Opacity"
-                                                 To="1" />
-                            </Storyboard>
-                        </VisualState>
-                    </VisualStateGroup>
-                </VisualStateManager.VisualStateGroups>
-                <Border Margin="4,4,-4,-4"
-                        Background="#052A2E31"
-                        CornerRadius="5" />
-                <Border Margin="3,3,-3,-3"
-                        Background="#152A2E31"
-                        CornerRadius="4" />
-                <Border Margin="2,2,-2,-2"
-                        Background="#252A2E31"
-                        CornerRadius="3" />
-                <Border Margin="1,1,-1,-1"
-                        Background="#352A2E31"
-                        CornerRadius="2" />
-                <Border Background="#FFDC000C" CornerRadius="2" />
-                <Border CornerRadius="2">
-                    <TextBlock MaxWidth="250"
-                               Margin="8,4,8,4"
-                               Foreground="White"
-                               Text="{Binding (Validation.Errors)[0].ErrorContent}"
-                               TextWrapping="Wrap"
-                               UseLayoutRounding="false" />
-                </Border>
-            </Grid>
-        </ControlTemplate>
-
-        <Style x:Key="LabelStyle" TargetType="TextBlock">
-            <Setter Property="Height" Value="18" />
-            <Setter Property="FontFamily" Value="Segoe UI Light" />
-            <Setter Property="FontSize" Value="14" />
-            <Setter Property="VerticalAlignment" Value="Center" />
-        </Style>
-
-        <Style x:Key="TextBoxStyle" TargetType="TextBox">
-            <Setter Property="BorderThickness" Value="1" />
-            <Setter Property="Background" Value="#FFFFFFFF" />
-            <Setter Property="FontFamily" Value="Segoe UI Light" />
-            <Setter Property="FontSize" Value="12" />
-            <Setter Property="Height" Value="24" />
-            <Setter Property="VerticalAlignment" Value="Center" />
-            <Setter Property="Foreground" Value="#FF000000" />
-            <Setter Property="Padding" Value="2" />
-            <Setter Property="BorderBrush">
-                <Setter.Value>
-                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                        <GradientStop Offset="0" Color="#FFA3AEB9" />
-                        <GradientStop Offset="0.375" Color="#FF8399A9" />
-                        <GradientStop Offset="0.375" Color="#FF718597" />
-                        <GradientStop Offset="1" Color="#FF617584" />
-                    </LinearGradientBrush>
-                </Setter.Value>
-            </Setter>
-            <Setter Property="Template">
-                <Setter.Value>
-                    <ControlTemplate TargetType="TextBox">
-                        <Grid x:Name="RootElement">
-                            <VisualStateManager.VisualStateGroups>
-                                <VisualStateGroup x:Name="CommonStates">
-                                    <VisualState x:Name="Normal" />
-                                    <VisualState x:Name="MouseOver">
-                                        <Storyboard>
-                                            <ColorAnimation Duration="0"
-                                                            Storyboard.TargetName="MouseOverBorder"
-                                                            Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
-                                                            To="#FF99C1E2" />
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="Disabled">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="DisabledVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="ReadOnly">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="ReadOnlyVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="FocusStates">
-                                    <VisualState x:Name="Focused">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="FocusVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="Unfocused">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="FocusVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="0" />
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="ValidationStates">
-                                    <VisualState x:Name="Valid" />
-                                    <VisualState x:Name="InvalidUnfocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="InvalidFocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <s:Boolean>True</s:Boolean>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                            </VisualStateManager.VisualStateGroups>
-                            <Border x:Name="Border"
-                                    Background="{TemplateBinding Background}"
-                                    BorderBrush="{TemplateBinding BorderBrush}"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    CornerRadius="1"
-                                    Opacity="1">
-                                <Grid>
-                                    <Border x:Name="ReadOnlyVisualElement"
-                                            Background="#5EC9C9C9"
-                                            Opacity="0" />
-                                    <Border x:Name="MouseOverBorder"
-                                            BorderBrush="Transparent"
-                                            BorderThickness="1">
-                                        <ScrollViewer x:Name="ContentElement"
-                                                      BorderThickness="0"
-                                                      IsTabStop="False"
-                                                      Padding="{TemplateBinding Padding}" />
-                                    </Border>
-                                </Grid>
-                            </Border>
-                            <Border x:Name="DisabledVisualElement"
-                                    Background="#A5F7F7F7"
-                                    BorderBrush="#A5F7F7F7"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    IsHitTestVisible="False"
-                                    Opacity="0" />
-                            <Border x:Name="FocusVisualElement"
-                                    Margin="1"
-                                    BorderBrush="#FF6DBDD1"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    IsHitTestVisible="False"
-                                    Opacity="0" />
-                            <Border x:Name="ValidationErrorElement"
-                                    BorderBrush="#FFDC000C"
-                                    BorderThickness="1"
-                                    CornerRadius="1"
-                                    Visibility="Collapsed">
-                                <ToolTipService.ToolTip>
-                                    <ToolTip x:Name="validationTooltip"
-                                             DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Placement="Right"
-                                             PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Template="{StaticResource ValidationToolTipTemplate}">
-                                        <ToolTip.Triggers>
-                                            <EventTrigger RoutedEvent="Canvas.Loaded">
-                                                <EventTrigger.Actions>
-                                                    <BeginStoryboard>
-                                                        <Storyboard>
-                                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible">
-                                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                                    <DiscreteObjectKeyFrame.Value>
-                                                                        <s:Boolean>true</s:Boolean>
-                                                                    </DiscreteObjectKeyFrame.Value>
-                                                                </DiscreteObjectKeyFrame>
-                                                            </ObjectAnimationUsingKeyFrames>
-                                                        </Storyboard>
-                                                    </BeginStoryboard>
-                                                </EventTrigger.Actions>
-                                            </EventTrigger>
-                                        </ToolTip.Triggers>
-                                    </ToolTip>
-                                </ToolTipService.ToolTip>
-                                <Grid Width="12"
-                                      Height="12"
-                                      Margin="1,-4,-4,0"
-                                      HorizontalAlignment="Right"
-                                      VerticalAlignment="Top"
-                                      Background="Transparent">
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"
-                                          Fill="#FFDC000C" />
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 0,0 L2,0 L 8,6 L8,8"
-                                          Fill="#ffffff" />
-                                </Grid>
-                            </Border>
-                        </Grid>
-                    </ControlTemplate>
-                </Setter.Value>
-            </Setter>
-        </Style>
-
-        <Style x:Key="DatePickerStyle" TargetType="sdk:DatePicker">
-            <Setter Property="FontFamily" Value="Segoe UI Light" />
-            <Setter Property="FontSize" Value="14" />
-            <Setter Property="Height" Value="24" />
-            <Setter Property="VerticalAlignment" Value="Center" />
-            <Setter Property="IsTabStop" Value="False" />
-            <Setter Property="Background" Value="#FFFFFFFF" />
-            <Setter Property="Padding" Value="2" />
-            <Setter Property="SelectionBackground" Value="#FF444444" />
-            <Setter Property="BorderBrush">
-                <Setter.Value>
-                    <LinearGradientBrush StartPoint=".5,1" EndPoint=".5,0">
-                        <GradientStop Offset="0" Color="#FF617584" />
-                        <GradientStop Offset="0.375" Color="#FF718597" />
-                        <GradientStop Offset="0.375" Color="#FF8399A9" />
-                        <GradientStop Offset="1" Color="#FFA3AEB9" />
-                    </LinearGradientBrush>
-                </Setter.Value>
-            </Setter>
-            <Setter Property="BorderThickness" Value="1" />
-            <Setter Property="Template">
-                <Setter.Value>
-                    <ControlTemplate TargetType="sdk:DatePicker">
-                        <Grid x:Name="Root">
-                            <Grid.Resources>
-                                <SolidColorBrush x:Key="DisabledBrush" Color="#8CFFFFFF" />
-                                <ControlTemplate x:Key="DropDownButtonTemplate" TargetType="Button">
-                                    <Grid>
-                                        <VisualStateManager.VisualStateGroups>
-                                            <VisualStateGroup x:Name="CommonStates">
-                                                <VisualStateGroup.Transitions>
-                                                    <VisualTransition GeneratedDuration="0" />
-                                                    <VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver" />
-                                                    <VisualTransition GeneratedDuration="0:0:0.1" To="Pressed" />
-                                                </VisualStateGroup.Transitions>
-                                                <VisualState x:Name="Normal" />
-                                                <VisualState x:Name="MouseOver">
-                                                    <Storyboard>
-                                                        <ColorAnimation Duration="0"
-                                                                        Storyboard.TargetName="Background"
-                                                                        Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
-                                                                        To="#FF448DCA" />
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </VisualState>
-                                                <VisualState x:Name="Pressed">
-                                                    <Storyboard>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="Background"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#FF448DCA" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                                       Duration="00:00:00.001"
-                                                                                       Storyboard.TargetName="Highlight"
-                                                                                       Storyboard.TargetProperty="(UIElement.Opacity)">
-                                                            <SplineDoubleKeyFrame KeyTime="0" Value="1" />
-                                                        </DoubleAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#EAFFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#C6FFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#6BFFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                        <ColorAnimationUsingKeyFrames BeginTime="0"
-                                                                                      Duration="00:00:00.001"
-                                                                                      Storyboard.TargetName="BackgroundGradient"
-                                                                                      Storyboard.TargetProperty="(Border.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
-                                                            <SplineColorKeyFrame KeyTime="0" Value="#F4FFFFFF" />
-                                                        </ColorAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </VisualState>
-                                                <VisualState x:Name="Disabled">
-                                                    <Storyboard>
-                                                        <DoubleAnimationUsingKeyFrames BeginTime="0"
-                                                                                       Duration="00:00:00.001"
-                                                                                       Storyboard.TargetName="DisabledVisual"
-                                                                                       Storyboard.TargetProperty="(UIElement.Opacity)">
-                                                            <SplineDoubleKeyFrame KeyTime="0" Value="1" />
-                                                        </DoubleAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </VisualState>
-                                            </VisualStateGroup>
-                                        </VisualStateManager.VisualStateGroups>
-                                        <Grid Width="19"
-                                              Height="18"
-                                              Margin="0"
-                                              HorizontalAlignment="Center"
-                                              VerticalAlignment="Center"
-                                              Background="#11FFFFFF">
-                                            <Grid.RowDefinitions>
-                                                <RowDefinition Height="23*" />
-                                                <RowDefinition Height="19*" />
-                                                <RowDefinition Height="19*" />
-                                                <RowDefinition Height="19*" />
-                                            </Grid.RowDefinitions>
-                                            <Grid.ColumnDefinitions>
-                                                <ColumnDefinition Width="20*" />
-                                                <ColumnDefinition Width="20*" />
-                                                <ColumnDefinition Width="20*" />
-                                                <ColumnDefinition Width="20*" />
-                                            </Grid.ColumnDefinitions>
-                                            <Border x:Name="Highlight"
-                                                    Grid.Row="0"
-                                                    Grid.RowSpan="4"
-                                                    Grid.ColumnSpan="4"
-                                                    Margin="-1"
-                                                    BorderBrush="#FF6DBDD1"
-                                                    BorderThickness="1"
-                                                    CornerRadius="0,0,1,1"
-                                                    Opacity="0" />
-                                            <Border x:Name="Background"
-                                                    Grid.Row="1"
-                                                    Grid.RowSpan="3"
-                                                    Grid.ColumnSpan="4"
-                                                    Margin="0,-1,0,0"
-                                                    Background="#FF1F3B53"
-                                                    BorderBrush="#FFFFFFFF"
-                                                    BorderThickness="1"
-                                                    CornerRadius=".5"
-                                                    Opacity="1" />
-                                            <Border x:Name="BackgroundGradient"
-                                                    Grid.Row="1"
-                                                    Grid.RowSpan="3"
-                                                    Grid.ColumnSpan="4"
-                                                    Margin="0,-1,0,0"
-                                                    BorderBrush="#BF000000"
-                                                    BorderThickness="1"
-                                                    CornerRadius=".5"
-                                                    Opacity="1">
-                                                <Border.Background>
-                                                    <LinearGradientBrush StartPoint=".7,0" EndPoint=".7,1">
-                                                        <GradientStop Offset="0" Color="#FFFFFFFF" />
-                                                        <GradientStop Offset="0.375" Color="#F9FFFFFF" />
-                                                        <GradientStop Offset="0.625" Color="#E5FFFFFF" />
-                                                        <GradientStop Offset="1" Color="#C6FFFFFF" />
-                                                    </LinearGradientBrush>
-                                                </Border.Background>
-                                            </Border>
-                                            <Rectangle Grid.RowSpan="1"
-                                                       Grid.ColumnSpan="4"
-                                                       StrokeThickness="1">
-                                                <Rectangle.Stroke>
-                                                    <LinearGradientBrush StartPoint="0.48,1.25" EndPoint="0.48,-1">
-                                                        <GradientStop Color="#FF494949" />
-                                                        <GradientStop Offset="1" Color="#FF9F9F9F" />
-                                                    </LinearGradientBrush>
-                                                </Rectangle.Stroke>
-                                                <Rectangle.Fill>
-                                                    <LinearGradientBrush StartPoint="0.46,1.6" EndPoint="0.3,-1.1">
-                                                        <GradientStop Color="#FF4084BD" />
-                                                        <GradientStop Offset="1" Color="#FFAFCFEA" />
-                                                    </LinearGradientBrush>
-                                                </Rectangle.Fill>
-                                            </Rectangle>
-                                            <Path Grid.Row="1"
-                                                  Grid.RowSpan="3"
-                                                  Grid.Column="0"
-                                                  Grid.ColumnSpan="4"
-                                                  Margin="4,3,4,3"
-                                                  HorizontalAlignment="Center"
-                                                  VerticalAlignment="Center"
-                                                  Data="M11.426758,8.4305077 L11.749023,8.4305077 L11.749023,16.331387 L10.674805,16.331387 L10.674805,10.299648 L9.0742188,11.298672 L9.0742188,10.294277 C9.4788408,10.090176 9.9094238,9.8090878 10.365967,9.4510155 C10.82251,9.0929432 11.176106,8.7527733 11.426758,8.4305077 z M14.65086,8.4305077 L18.566387,8.4305077 L18.566387,9.3435936 L15.671368,9.3435936 L15.671368,11.255703 C15.936341,11.058764 16.27293,10.960293 16.681133,10.960293 C17.411602,10.960293 17.969301,11.178717 18.354229,11.615566 C18.739157,12.052416 18.931622,12.673672 18.931622,13.479336 C18.931622,15.452317 18.052553,16.438808 16.294415,16.438808 C15.560365,16.438808 14.951641,16.234707 14.468243,15.826504 L14.881817,14.929531 C15.368796,15.326992 15.837872,15.525723 16.289043,15.525723 C17.298809,15.525723 17.803692,14.895514 17.803692,13.635098 C17.803692,12.460618 17.305971,11.873379 16.310528,11.873379 C15.83071,11.873379 15.399232,12.079271 15.016094,12.491055 L14.65086,12.238613 z"
-                                                  Fill="#FF2F2F2F"
-                                                  RenderTransformOrigin="0.5,0.5"
-                                                  Stretch="Fill" />
-                                            <Ellipse Grid.ColumnSpan="4"
-                                                     Width="3"
-                                                     Height="3"
-                                                     HorizontalAlignment="Center"
-                                                     VerticalAlignment="Center"
-                                                     Fill="#FFFFFFFF"
-                                                     StrokeThickness="0" />
-                                            <Border x:Name="DisabledVisual"
-                                                    Grid.Row="0"
-                                                    Grid.RowSpan="4"
-                                                    Grid.ColumnSpan="4"
-                                                    BorderBrush="#B2FFFFFF"
-                                                    BorderThickness="1"
-                                                    CornerRadius="0,0,.5,.5"
-                                                    Opacity="0" />
-                                        </Grid>
-                                    </Grid>
-                                </ControlTemplate>
-                            </Grid.Resources>
-                            <VisualStateManager.VisualStateGroups>
-                                <VisualStateGroup x:Name="CommonStates">
-                                    <VisualState x:Name="Normal" />
-                                    <VisualState x:Name="Disabled">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="DisabledVisual"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="ValidationStates">
-                                    <VisualState x:Name="Valid" />
-                                    <VisualState x:Name="InvalidUnfocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="InvalidFocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <s:Boolean>True</s:Boolean>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                            </VisualStateManager.VisualStateGroups>
-                            <Grid.ColumnDefinitions>
-                                <ColumnDefinition Width="*" />
-                                <ColumnDefinition Width="Auto" />
-                            </Grid.ColumnDefinitions>
-                            <p:DatePickerTextBox x:Name="TextBox"
-                                                 Grid.Column="0"
-                                                 Background="{TemplateBinding Background}"
-                                                 BorderBrush="{TemplateBinding BorderBrush}"
-                                                 BorderThickness="{TemplateBinding BorderThickness}"
-                                                 Padding="{TemplateBinding Padding}"
-                                                 SelectionBackground="{TemplateBinding SelectionBackground}" />
-                            <Button x:Name="Button"
-                                    Grid.Column="1"
-                                    Width="20"
-                                    Margin="2,0,2,0"
-                                    BorderBrush="{TemplateBinding BorderBrush}"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    Foreground="{TemplateBinding Foreground}"
-                                    Template="{StaticResource DropDownButtonTemplate}" />
-                            <Grid x:Name="DisabledVisual"
-                                  Grid.ColumnSpan="2"
-                                  IsHitTestVisible="False"
-                                  Opacity="0">
-                                <Grid.ColumnDefinitions>
-                                    <ColumnDefinition Width="*" />
-                                    <ColumnDefinition Width="Auto" />
-                                </Grid.ColumnDefinitions>
-                                <Rectangle Fill="#8CFFFFFF"
-                                           RadiusX="1"
-                                           RadiusY="1" />
-                                <Rectangle Grid.Column="1"
-                                           Width="19"
-                                           Height="18"
-                                           Margin="2,0,2,0"
-                                           Fill="#8CFFFFFF"
-                                           RadiusX="1"
-                                           RadiusY="1" />
-                            </Grid>
-                            <Popup x:Name="Popup" />
-                            <Border x:Name="ValidationErrorElement"
-                                    BorderBrush="#FFDC000C"
-                                    BorderThickness="1"
-                                    CornerRadius="1"
-                                    Visibility="Collapsed">
-                                <ToolTipService.ToolTip>
-                                    <ToolTip x:Name="validationTooltip"
-                                             DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Placement="Right"
-                                             PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Template="{StaticResource ValidationToolTipTemplate}">
-                                        <ToolTip.Triggers>
-                                            <EventTrigger RoutedEvent="Canvas.Loaded">
-                                                <BeginStoryboard>
-                                                    <Storyboard>
-                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible">
-                                                            <DiscreteObjectKeyFrame KeyTime="0">
-                                                                <DiscreteObjectKeyFrame.Value>
-                                                                    <s:Boolean>true</s:Boolean>
-                                                                </DiscreteObjectKeyFrame.Value>
-                                                            </DiscreteObjectKeyFrame>
-                                                        </ObjectAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </BeginStoryboard>
-                                            </EventTrigger>
-                                        </ToolTip.Triggers>
-                                    </ToolTip>
-                                </ToolTipService.ToolTip>
-                                <Grid Width="12"
-                                      Height="12"
-                                      Margin="1,-4,-4,0"
-                                      HorizontalAlignment="Right"
-                                      VerticalAlignment="Top"
-                                      Background="Transparent">
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"
-                                          Fill="#FFDC000C" />
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 0,0 L2,0 L 8,6 L8,8"
-                                          Fill="#ffffff" />
-                                </Grid>
-                            </Border>
-                        </Grid>
-                    </ControlTemplate>
-                </Setter.Value>
-            </Setter>
-        </Style>
-
-        <Style x:Key="ButtonStyle" TargetType="Button">
-            <Setter Property="Height" Value="22" />
-            <Setter Property="Margin" Value="5,0,0,0" />
-            <Setter Property="VerticalAlignment" Value="Center" />
-            <Setter Property="Width" Value="60" />
-        </Style>
-
-        <Style x:Key="ValidationSummaryStyle" TargetType="sdk:ValidationSummary">
-            <Setter Property="IsTabStop" Value="False" />
-            <Setter Property="Background" Value="#FFEFEFEA" />
-            <Setter Property="BorderBrush" Value="#FFCECEC7" />
-            <Setter Property="BorderThickness" Value="1" />
-            <Setter Property="Padding" Value="0" />
-
-            <Setter Property="HeaderTemplate">
-                <Setter.Value>
-                    <DataTemplate>
-                        <Border x:Name="Header"
-                                Margin="-1,-1,-1,0"
-                                Background="#FFDC000C"
-                                CornerRadius="2">
-                            <StackPanel Margin="6,2,6,4"
-                                        VerticalAlignment="Top"
-                                        Orientation="Horizontal">
-                                <Grid Width="13" Height="13">
-                                    <Ellipse Margin="0" RenderTransformOrigin="0.5,0.5">
-                                        <Ellipse.Fill>
-                                            <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                                                <GradientStop Offset="0" Color="#FFFFFFFF" />
-                                                <GradientStop Offset="1" Color="#FFFDC8C8" />
-                                            </LinearGradientBrush>
-                                        </Ellipse.Fill>
-                                        <Ellipse.Stroke>
-                                            <LinearGradientBrush StartPoint="0.505,0.65" EndPoint="0.5,0.058">
-                                                <GradientStop Offset="0" Color="#FFDC000C" />
-                                                <GradientStop Offset="0.991" Color="#FFFF9298" />
-                                            </LinearGradientBrush>
-                                        </Ellipse.Stroke>
-                                    </Ellipse>
-                                    <Path Data="M5.5,2.5 L7.5,2.5 L7.5,8 L5.5,8 M5.5,9.5 L7.5,9.5 L7.5,10.5 L5.5,10.5" Fill="#DDD43940" />
-                                </Grid>
-                                <TextBlock FontWeight="Bold"
-                                           Foreground="#FFFFFFFF"
-                                           Padding="4,1,0,0"
-                                           Text="{Binding}" />
-                            </StackPanel>
-                        </Border>
-                    </DataTemplate>
-                </Setter.Value>
-            </Setter>
-            <Setter Property="ErrorStyle">
-                <Setter.Value>
-                    <Style TargetType="ListBoxItem">
-                        <Setter Property="Template">
-                            <Setter.Value>
-                                <ControlTemplate TargetType="ListBoxItem">
-                                    <Grid Background="{TemplateBinding Background}">
-                                        <VisualStateManager.VisualStateGroups>
-                                            <VisualStateGroup x:Name="CommonStates">
-                                                <VisualState x:Name="Normal" />
-                                                <VisualState x:Name="MouseOver">
-                                                    <Storyboard>
-                                                        <DoubleAnimation Duration="0"
-                                                                         Storyboard.TargetName="FillColor"
-                                                                         Storyboard.TargetProperty="Opacity"
-                                                                         To=".35" />
-                                                    </Storyboard>
-                                                </VisualState>
-                                                <VisualState x:Name="Disabled">
-                                                    <Storyboard>
-                                                        <DoubleAnimation Duration="0"
-                                                                         Storyboard.TargetName="ContentPresenter"
-                                                                         Storyboard.TargetProperty="Opacity"
-                                                                         To=".55" />
-                                                    </Storyboard>
-                                                </VisualState>
-                                            </VisualStateGroup>
-                                            <VisualStateGroup x:Name="SelectionStates">
-                                                <VisualState x:Name="Unselected" />
-                                                <VisualState x:Name="Selected">
-                                                    <Storyboard>
-                                                        <DoubleAnimation Duration="0"
-                                                                         Storyboard.TargetName="FillColor2"
-                                                                         Storyboard.TargetProperty="Opacity"
-                                                                         To=".75" />
-                                                    </Storyboard>
-                                                </VisualState>
-                                            </VisualStateGroup>
-                                            <VisualStateGroup x:Name="FocusStates">
-                                                <VisualState x:Name="Focused">
-                                                    <Storyboard>
-                                                        <ObjectAnimationUsingKeyFrames Duration="0"
-                                                                                       Storyboard.TargetName="FocusVisualElement"
-                                                                                       Storyboard.TargetProperty="Visibility">
-                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                                        </ObjectAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </VisualState>
-                                                <VisualState x:Name="Unfocused" />
-                                            </VisualStateGroup>
-                                        </VisualStateManager.VisualStateGroups>
-                                        <Rectangle x:Name="FillColor"
-                                                   Fill="#59F7D8DB"
-                                                   IsHitTestVisible="False"
-                                                   Opacity="0"
-                                                   RadiusX="1"
-                                                   RadiusY="1" />
-                                        <Rectangle x:Name="FillColor2"
-                                                   Fill="#FFF7D8DB"
-                                                   IsHitTestVisible="False"
-                                                   Opacity="0"
-                                                   RadiusX="1"
-                                                   RadiusY="1" />
-                                        <ContentPresenter x:Name="ContentPresenter"
-                                                          Margin="{TemplateBinding Padding}"
-                                                          HorizontalAlignment="Left"
-                                                          Content="{TemplateBinding Content}"
-                                                          ContentTemplate="{TemplateBinding ContentTemplate}" />
-                                        <Rectangle x:Name="FocusVisualElement"
-                                                   RadiusX="1"
-                                                   RadiusY="1"
-                                                   Stroke="#FFF7D8DB"
-                                                   StrokeThickness="1"
-                                                   Visibility="Collapsed" />
-                                    </Grid>
-                                </ControlTemplate>
-                            </Setter.Value>
-                        </Setter>
-                    </Style>
-                </Setter.Value>
-            </Setter>
-            <Setter Property="Template">
-                <Setter.Value>
-                    <ControlTemplate TargetType="sdk:ValidationSummary">
-                        <Grid x:Name="ValidationSummary">
-                            <VisualStateManager.VisualStateGroups>
-                                <VisualStateGroup x:Name="CommonStates">
-                                    <VisualState x:Name="Normal" />
-                                    <VisualState x:Name="Disabled">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Duration="0"
-                                                                           Storyboard.TargetName="DisabledVisual"
-                                                                           Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="ValidationStates">
-                                    <VisualState x:Name="Empty">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Duration="0"
-                                                                           Storyboard.TargetName="Content"
-                                                                           Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" />
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="HasErrors" />
-                                </VisualStateGroup>
-                            </VisualStateManager.VisualStateGroups>
-                            <Border x:Name="Content"
-                                    Background="{TemplateBinding Background}"
-                                    BorderBrush="{TemplateBinding BorderBrush}"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    CornerRadius="0,0,2,2">
-                                <Grid>
-                                    <Grid.RowDefinitions>
-                                        <RowDefinition Height="Auto" />
-                                        <RowDefinition Height="*" />
-                                    </Grid.RowDefinitions>
-                                    <ListBox x:Name="SummaryListBox"
-                                             Grid.Row="1"
-                                             Height="Auto"
-                                             Background="{x:Null}"
-                                             BorderThickness="0"
-                                             Foreground="{TemplateBinding Foreground}"
-                                             ItemContainerStyle="{TemplateBinding ErrorStyle}"
-                                             Padding="{TemplateBinding Padding}"
-                                             Style="{TemplateBinding SummaryListBoxStyle}">
-                                        <ListBox.ItemTemplate>
-                                            <DataTemplate>
-                                                <StackPanel Orientation="Horizontal">
-                                                    <TextBlock Margin="4,0,0,0"
-                                                               FontWeight="Bold"
-                                                               Text="{Binding MessageHeader}" />
-                                                    <TextBlock Margin="4,0,0,0" Text="{Binding Message}" />
-                                                </StackPanel>
-                                            </DataTemplate>
-                                        </ListBox.ItemTemplate>
-                                    </ListBox>
-                                    <Border x:Name="DisabledVisual"
-                                            Grid.RowSpan="2"
-                                            Background="#80FFFFFF"
-                                            IsHitTestVisible="True"
-                                            Visibility="Collapsed" />
-                                    <ContentControl x:Name="HeaderContentControl"
-                                                    HorizontalContentAlignment="Stretch"
-                                                    VerticalContentAlignment="Center"
-                                                    Content="{TemplateBinding Header}"
-                                                    ContentTemplate="{TemplateBinding HeaderTemplate}"
-                                                    IsTabStop="False" />
-                                </Grid>
-                            </Border>
-                        </Grid>
-                    </ControlTemplate>
-                </Setter.Value>
-            </Setter>
-        </Style>
-
-        <Style x:Key="PasswordBoxStyle" TargetType="PasswordBox">
-            <Setter Property="FontFamily" Value="Segoe UI Light" />
-            <Setter Property="FontSize" Value="12" />
-            <Setter Property="Height" Value="24" />
-            <Setter Property="VerticalAlignment" Value="Center" />
-            <Setter Property="BorderThickness" Value="1" />
-            <Setter Property="Background" Value="#FFFFFFFF" />
-            <Setter Property="Foreground" Value="#FF000000" />
-            <Setter Property="Padding" Value="2" />
-            <Setter Property="BorderBrush">
-                <Setter.Value>
-                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
-                        <GradientStop Offset="0" Color="#FFA3AEB9" />
-                        <GradientStop Offset="0.375" Color="#FF8399A9" />
-                        <GradientStop Offset="0.375" Color="#FF718597" />
-                        <GradientStop Offset="1" Color="#FF617584" />
-                    </LinearGradientBrush>
-                </Setter.Value>
-            </Setter>
-            <Setter Property="Template">
-                <Setter.Value>
-                    <ControlTemplate TargetType="PasswordBox">
-                        <Grid x:Name="RootElement">
-                            <VisualStateManager.VisualStateGroups>
-                                <VisualStateGroup x:Name="CommonStates">
-                                    <VisualState x:Name="Normal" />
-                                    <VisualState x:Name="MouseOver">
-                                        <Storyboard>
-                                            <ColorAnimation Duration="0"
-                                                            Storyboard.TargetName="MouseOverBorder"
-                                                            Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
-                                                            To="#FF99C1E2" />
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="Disabled">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="DisabledVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="FocusStates">
-                                    <VisualState x:Name="Focused">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="FocusVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="1" />
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="Unfocused">
-                                        <Storyboard>
-                                            <DoubleAnimation Duration="0"
-                                                             Storyboard.TargetName="FocusVisualElement"
-                                                             Storyboard.TargetProperty="Opacity"
-                                                             To="0" />
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                                <VisualStateGroup x:Name="ValidationStates">
-                                    <VisualState x:Name="Valid" />
-                                    <VisualState x:Name="InvalidUnfocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                    <VisualState x:Name="InvalidFocused">
-                                        <Storyboard>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <Visibility>Visible</Visibility>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen">
-                                                <DiscreteObjectKeyFrame KeyTime="0">
-                                                    <DiscreteObjectKeyFrame.Value>
-                                                        <s:Boolean>True</s:Boolean>
-                                                    </DiscreteObjectKeyFrame.Value>
-                                                </DiscreteObjectKeyFrame>
-                                            </ObjectAnimationUsingKeyFrames>
-                                        </Storyboard>
-                                    </VisualState>
-                                </VisualStateGroup>
-                            </VisualStateManager.VisualStateGroups>
-                            <Border x:Name="Border"
-                                    Background="{TemplateBinding Background}"
-                                    BorderBrush="{TemplateBinding BorderBrush}"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    CornerRadius="1"
-                                    Opacity="1">
-                                <Border x:Name="MouseOverBorder"
-                                        BorderBrush="Transparent"
-                                        BorderThickness="1">
-                                    <Border x:Name="ContentElement" Margin="{TemplateBinding Padding}" />
-                                </Border>
-                            </Border>
-                            <Border x:Name="DisabledVisualElement"
-                                    Background="#A5F7F7F7"
-                                    BorderBrush="#A5F7F7F7"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    IsHitTestVisible="False"
-                                    Opacity="0" />
-                            <Border x:Name="FocusVisualElement"
-                                    Margin="1"
-                                    BorderBrush="#FF6DBDD1"
-                                    BorderThickness="{TemplateBinding BorderThickness}"
-                                    IsHitTestVisible="False"
-                                    Opacity="0" />
-                            <Border x:Name="ValidationErrorElement"
-                                    BorderBrush="#FFDC000C"
-                                    BorderThickness="1"
-                                    CornerRadius="1"
-                                    Visibility="Collapsed">
-                                <ToolTipService.ToolTip>
-                                    <ToolTip x:Name="validationTooltip"
-                                             DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Placement="Right"
-                                             PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
-                                             Template="{StaticResource ValidationToolTipTemplate}">
-                                        <ToolTip.Triggers>
-                                            <EventTrigger RoutedEvent="Canvas.Loaded">
-                                                <BeginStoryboard>
-                                                    <Storyboard>
-                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible">
-                                                            <DiscreteObjectKeyFrame KeyTime="0">
-                                                                <DiscreteObjectKeyFrame.Value>
-                                                                    <s:Boolean>true</s:Boolean>
-                                                                </DiscreteObjectKeyFrame.Value>
-                                                            </DiscreteObjectKeyFrame>
-                                                        </ObjectAnimationUsingKeyFrames>
-                                                    </Storyboard>
-                                                </BeginStoryboard>
-                                            </EventTrigger>
-                                        </ToolTip.Triggers>
-                                    </ToolTip>
-                                </ToolTipService.ToolTip>
-                                <Grid Width="12"
-                                      Height="12"
-                                      Margin="1,-4,-4,0"
-                                      HorizontalAlignment="Right"
-                                      VerticalAlignment="Top"
-                                      Background="Transparent">
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"
-                                          Fill="#FFDC000C" />
-                                    <Path Margin="1,3,0,0"
-                                          Data="M 0,0 L2,0 L 8,6 L8,8"
-                                          Fill="#ffffff" />
-                                </Grid>
-                            </Border>
-                        </Grid>
-                    </ControlTemplate>
-                </Setter.Value>
-            </Setter>
-        </Style>
-    </Application.Resources>
-</Application>
--- a/SilverlightGlimpse/SilverlightValidation/App.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-using System;
-using System.Windows;
-using SilverlightGlimpse.Services;
-
-namespace SilverlightValidation
-{
-    public partial class App
-    {
-        public App()
-        {
-            this.Startup += this.Application_Startup;
-            this.Exit += this.Application_Exit;
-            this.UnhandledException += this.Application_UnhandledException;
-
-            InitializeComponent();
-        }
-
-        private void Application_Startup(object sender, StartupEventArgs e)
-        {
-            try
-            {
-                this.RootVisual = new Views.UserView();
-                Glimpse.Service.Load(this);
-            }
-            catch (Exception ex)
-            {
-                Glimpse.Service.DisplayLoadFailure(this, ex);
-            }
-        }
-
-        private void Application_Exit(object sender, EventArgs e)
-        {
-
-        }
-
-        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
-        {
-            // If the app is running outside of the debugger then report the exception using
-            // the browser's exception mechanism. On IE this will display it a yellow alert 
-            // icon in the status bar and Firefox will display a script error.
-            if (!System.Diagnostics.Debugger.IsAttached)
-            {
-
-                // NOTE: This will allow the application to continue running after an exception has been thrown
-                // but not handled. 
-                // For production applications this error handling should be replaced with something that will 
-                // report the error to the website and stop the application.
-                e.Handled = true;
-                Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
-            }
-        }
-
-        private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
-        {
-            try
-            {
-                string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
-                errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
-
-                System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
-            }
-            catch (Exception)
-            {
-            }
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/Interfaces/IUserModel.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-using System;
-namespace SilverlightValidation.Interfaces
-{
-  public interface IUserModel
-  {
-    string Username { get; set; }
-    string Email { get; set; }
-    string Password { get; set; }
-    DateTime? DateOfBirth { get; set; }
-    string Description { get; set; }
-  }
-}
--- a/SilverlightGlimpse/SilverlightValidation/Models/UserModel.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-using System;
-using SilverlightValidation.Interfaces;
-
-namespace SilverlightValidation.Models
-{
-    public class UserModel : IUserModel
-    {
-        public string Username { get; set; }
-        public string Email { get; set; }
-        public string Password { get; set; }
-        public DateTime? DateOfBirth { get; set; }
-        public string Description { get; set; }
-
-        public static UserModel Create()
-        {
-            return new UserModel() { Username = "", Email = "", Password = "", DateOfBirth = null, Description = "" };
-        }
-
-        public UserModel Clone()
-        {
-            return (UserModel) this.MemberwiseClone(); 
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/Properties/AppManifest.xml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
->
-    <Deployment.Parts>
-    </Deployment.Parts>
-</Deployment>
--- a/SilverlightGlimpse/SilverlightValidation/Properties/AssemblyInfo.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("SilverlightValidation")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SilverlightValidation")]
-[assembly: AssemblyCopyright("Copyright ©  2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("3f5a4c47-8fbd-4568-8728-e26ee6a51945")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightValidation/SilverlightValidation.csproj	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.50727</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{0C1CC1FC-915A-4428-8952-CDC79EABC3F4}</ProjectGuid>
-    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>SilverlightValidation</RootNamespace>
-    <AssemblyName>SilverlightValidation</AssemblyName>
-    <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
-    <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
-    <SilverlightApplication>true</SilverlightApplication>
-    <SupportedCultures>
-    </SupportedCultures>
-    <XapOutputs>true</XapOutputs>
-    <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
-    <XapFilename>SilverlightValidation.xap</XapFilename>
-    <SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
-    <SilverlightAppEntry>SilverlightValidation.App</SilverlightAppEntry>
-    <TestPageFileName>SilverlightValidationTestPage.html</TestPageFileName>
-    <CreateTestPage>true</CreateTestPage>
-    <ValidateXaml>true</ValidateXaml>
-    <EnableOutOfBrowser>false</EnableOutOfBrowser>
-    <OutOfBrowserSettingsFile>Properties\OutOfBrowserSettings.xml</OutOfBrowserSettingsFile>
-    <UsePlatformExtensions>false</UsePlatformExtensions>
-    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
-    <LinkedServerProject>
-    </LinkedServerProject>
-  </PropertyGroup>
-  <!-- This property group is only here to support building this project using the 
-       MSBuild 3.5 toolset. In order to work correctly with this older toolset, it needs 
-       to set the TargetFrameworkVersion to v3.5 -->
-  <PropertyGroup Condition="'$(MSBuildToolsVersion)' == '3.5'">
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>Bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>
-    <NoStdLib>true</NoStdLib>
-    <NoConfig>true</NoConfig>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>Bin\Release</OutputPath>
-    <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>
-    <NoStdLib>true</NoStdLib>
-    <NoConfig>true</NoConfig>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="FluentValidation">
-      <HintPath>..\Libs\FluentValidation.dll</HintPath>
-    </Reference>
-    <Reference Include="mscorlib" />
-    <Reference Include="System.Windows" />
-    <Reference Include="system" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Windows.Controls, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\Libs\System.Windows.Controls.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Windows.Controls.Data.Input, Version=5.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <HintPath>..\Libs\System.Windows.Controls.Data.Input.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Windows.Browser" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="App.xaml.cs">
-      <DependentUpon>App.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="Interfaces\IUserModel.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Models\UserModel.cs" />
-    <Compile Include="Validators\UserModelValidator.cs" />
-    <Compile Include="Views\UserView.xaml.cs">
-      <DependentUpon>UserView.xaml</DependentUpon>
-    </Compile>
-    <Compile Include="ViewModels\UserViewModel.cs" />
-    <Compile Include="ViewModels\ViewModelBase.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <ApplicationDefinition Include="App.xaml">
-      <SubType>Designer</SubType>
-      <Generator>MSBuild:Compile</Generator>
-    </ApplicationDefinition>
-    <Page Include="Views\UserView.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Properties\AppManifest.xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\SilverlightGlimpse\SilverlightGlimpse.csproj">
-      <Project>{bb51026b-2864-4389-aaca-0bbdf1926e46}</Project>
-      <Name>SilverlightGlimpse</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-  <ProjectExtensions>
-    <VisualStudio>
-      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">
-        <SilverlightProjectProperties />
-      </FlavorProperties>
-    </VisualStudio>
-  </ProjectExtensions>
-</Project>
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightValidation/Validators/UserModelValidator.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-using System;
-using FluentValidation;
-using SilverlightValidation.Models;
-using SilverlightValidation.Interfaces;
-
-namespace SilverlightValidation.Validators
-{
-    public class UserModelValidator : AbstractValidator<IUserModel>
-    {
-        public UserModelValidator()
-        {
-            RuleFor(x => x.Username)
-                .Length(3, 8)
-                .WithMessage("Must be between 3-8 characters.");
-
-            RuleFor(x => x.Password)
-                .Matches(@"^\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*$")
-                .WithMessage("Must contain lower, upper and numeric chars.");
-
-            RuleFor(x => x.Email)
-                .EmailAddress()
-                .WithMessage("A valid email address is required.");
-
-            RuleFor(x => x.DateOfBirth)
-                .Must(BeAValidDateOfBirth)
-                .WithMessage("Must be within 100 years of today.");
-        }
-
-        private bool BeAValidDateOfBirth(DateTime? dateOfBirth)
-        {
-            if (dateOfBirth == null) return false;
-            if (dateOfBirth.Value > DateTime.Today || dateOfBirth < DateTime.Today.AddYears(-100))
-                return false;
-            return true;
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/ViewModels/UserListViewModel.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Windows.Input;
-using SilverlightValidation.Commands;
-using SilverlightValidation.Models;
-using SilverlightValidation.Validators;
-using SilverlightValidation.Views;
-using GalaSoft.MvvmLight.Messaging;
-using SilverlightValidation.Messages;
-
-namespace SilverlightValidation.ViewModels
-{
-    public class UserListViewModel
-    {
-        UserView window;
-
-        public UserListViewModel(IList<UserModel> models, UserModelValidator validator)
-        {
-            Data = new ObservableCollection<UserViewModel>();
-
-            foreach (var model in models)
-                Data.Add(new UserViewModel(model, validator));
-
-            AddCommand = new RelayCommand(AddCommandExecute);
-            DeleteCommand = new RelayCommand(DeleteCommandExecute);
-
-            Messenger.Default.Register<UserViewResponseMessage>(this, UserViewResponseMessageReceived);
-        }
-
-        private void UserViewResponseMessageReceived(UserViewResponseMessage userViewResponseMessage)
-        {
-            if (userViewResponseMessage.UserViewModel != null)
-                Data.Add(userViewResponseMessage.UserViewModel);
-            window.Close();
-        }
-
-        #region Properties
-
-        public ObservableCollection<UserViewModel> Data { get; set; }
-
-        public UserViewModel SelectedItem { get; set; }
-
-        #endregion
-
-        #region Commands
-
-        public ICommand AddCommand { get; set; }
-        public ICommand DeleteCommand { get; set; }
-
-        private void AddCommandExecute(object obj)
-        {
-            window = new UserView();
-            window.Show();
-        }
-
-        private void DeleteCommandExecute(object obj)
-        {
-            if (SelectedItem!=null)
-                Data.Remove(SelectedItem);
-        }
-
-        #endregion
-    }
-}
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightValidation/ViewModels/UserViewModel.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-using System;
-using System.Linq;
-using FluentValidation;
-using SilverlightValidation.Interfaces;
-using SilverlightValidation.Validators;
-using SilverlightValidation.Models;
-
-namespace SilverlightValidation.ViewModels
-{
-    public class UserViewModel : ViewModelBase, IUserModel
-    {
-        #region Fields
-
-        private readonly UserModelValidator _validator;
-        private UserModel _data;
-
-        #endregion
-
-        #region Constructor
-
-        public UserViewModel(UserModel model, UserModelValidator validator)
-        {
-            _validator = validator;
-            _data = model;
-        }
-
-        #endregion
-
-        #region Properties
-
-        private const string UsernameProperty = "Username";
-        public string Username
-        {
-            get { return _data.Username; }
-            set
-            {
-                if (_data.Username != value)
-                {
-                    _data.Username = value;
-                    RaisePropertyChanged(UsernameProperty);
-                }
-
-                ClearError(UsernameProperty);
-                var validationResult = _validator.Validate(this, UsernameProperty);
-                if (!validationResult.IsValid)
-                    validationResult.Errors.ToList().ForEach(x => SetError(UsernameProperty, x.ErrorMessage));
-            }
-        }
-
-        private const string PasswordProperty = "Password";
-        public string Password
-        {
-            get { return _data.Password; }
-            set
-            {
-                if (_data.Password != value)
-                {
-                    _data.Password = value;
-                    RaisePropertyChanged(PasswordProperty);
-                }
-
-                ClearError(PasswordProperty);
-                var validationResult = _validator.Validate(this, PasswordProperty);
-                if (!validationResult.IsValid)
-                    validationResult.Errors.ToList().ForEach(x => SetError(PasswordProperty, x.ErrorMessage));
-            }
-        }
-
-        private const string EmailProperty = "Email";
-        public string Email
-        {
-            get { return _data.Email; }
-            set
-            {
-                if (_data.Email != value)
-                {
-                    _data.Email = value;
-                    RaisePropertyChanged(EmailProperty);
-                }
-
-                ClearError(EmailProperty);
-                var validationResult = _validator.Validate(this, EmailProperty);
-                if (!validationResult.IsValid)
-                    validationResult.Errors.ToList().ForEach(x => SetError(EmailProperty, x.ErrorMessage));
-            }
-        }
-
-        private const string DateOfBirthProperty = "DateOfBirth";
-        public DateTime? DateOfBirth
-        {
-            get { return _data.DateOfBirth; }
-            set
-            {
-                if (_data.DateOfBirth != value)
-                {
-                    _data.DateOfBirth = value;
-                    RaisePropertyChanged(DateOfBirthProperty);
-                }
-
-                ClearError(DateOfBirthProperty);
-                var validationResult = _validator.Validate(this, DateOfBirthProperty);
-                if (!validationResult.IsValid)
-                    validationResult.Errors.ToList().ForEach(x => SetError(DateOfBirthProperty, x.ErrorMessage));
-            }
-        }
-
-        private const string DescriptionProperty = "Description";
-        public string Description
-        {
-            get { return _data.Description; }
-            set
-            {
-                if (_data.Description != value)
-                {
-                    _data.Description = value;
-                    RaisePropertyChanged(DescriptionProperty);
-                }
-
-                ClearError(DescriptionProperty);
-                var validationResult = _validator.Validate(this, DescriptionProperty);
-                if (!validationResult.IsValid)
-                    validationResult.Errors.ToList().ForEach(x => SetError(DescriptionProperty, x.ErrorMessage));
-            }
-        }
-
-        #endregion
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/ViewModels/ViewModelBase.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-
-namespace SilverlightValidation.ViewModels
-{
-    public class ViewModelBase : INotifyPropertyChanged, INotifyDataErrorInfo
-    {
-        #region INotifyPropertyChanged method plus event
-
-        public event PropertyChangedEventHandler PropertyChanged = delegate { };
-
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-        }
-
-        #endregion
-
-        #region INotifyDataErrorInfo methods and helpers
-
-        private readonly Dictionary<string, List<string>> _errors = new Dictionary<string, List<string>>();
-
-        public void SetError(string propertyName, string errorMessage)
-        {
-            if (!_errors.ContainsKey(propertyName))
-                _errors.Add(propertyName, new List<string> { errorMessage });
-
-            RaiseErrorsChanged(propertyName);
-        }
-
-        protected void ClearError(string propertyName)
-        {
-            if (_errors.ContainsKey(propertyName))
-            {
-                _errors.Remove(propertyName);
-                RaiseErrorsChanged(propertyName);
-            }
-        }
-
-        protected void ClearAllErrors()
-        {
-            var errors = _errors.Select(error => error.Key).ToList();
-
-            foreach (var propertyName in errors)
-                ClearError(propertyName);
-        }
-
-        public void RaiseErrorsChanged(string propertyName)
-        {
-            ErrorsChanged(this, new DataErrorsChangedEventArgs(propertyName));
-        }
-
-        public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged = delegate { };
-
-        public IEnumerable GetErrors(string propertyName)
-        {
-            if (propertyName == null) return null;
-            return _errors.ContainsKey(propertyName)
-                    ? _errors[propertyName]
-                    : null;
-        }
-
-        public bool HasErrors
-        {
-            get { return _errors.Count > 0; }
-        }
-
-        #endregion
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-<UserControl x:Class="SilverlightValidation.Views.UserListView"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
-             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
-             d:DesignHeight="500"
-             d:DesignWidth="725"
-             mc:Ignorable="d">
-
-    <Grid x:Name="LayoutRoot">
-        <Grid.RowDefinitions>
-            <RowDefinition Height="30" />
-            <RowDefinition Height="40" />
-            <RowDefinition Height="300" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="100" />
-        </Grid.RowDefinitions>
-        <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="*" />
-            <ColumnDefinition Width="725" />
-            <ColumnDefinition Width="*" />
-        </Grid.ColumnDefinitions>
-
-        <Button x:Name="btnThrowException"
-                Grid.Row="1"
-                Grid.Column="1"
-                Width="120"
-                HorizontalAlignment="Left"
-                Click="btnThrowException_Click"
-                Content="Throw Exception"
-                Style="{StaticResource ButtonStyle}" />
-
-        <StackPanel Grid.Row="1"
-                    Grid.Column="1"
-                    HorizontalAlignment="Right"
-                    Orientation="Horizontal">
-
-
-            <Button x:Name="btnAdd"
-                    Width="60"
-                    Command="{Binding AddCommand}"
-                    Content="Add"
-                    Style="{StaticResource ButtonStyle}" />
-            <Button x:Name="btnDelete"
-                    Width="60"
-                    Command="{Binding DeleteCommand}"
-                    Content="Delete"
-                    Style="{StaticResource ButtonStyle}" />
-        </StackPanel>
-
-        <controls:DataGrid x:Name="dataGridUsers"
-                           Grid.Row="2"
-                           Grid.Column="1"
-                           AutoGenerateColumns="False"
-                           ItemsSource="{Binding Data}"
-                           SelectedItem="{Binding SelectedItem,
-                                                  Mode=TwoWay}"
-                           SelectionMode="Single">
-            <controls:DataGrid.Columns>
-                <controls:DataGridTextColumn x:Name="dgtcUsername"
-                                             Width="125"
-                                             Binding="{Binding Username,
-                                                               Mode=TwoWay,
-                                                               ValidatesOnNotifyDataErrors=True,
-                                                               NotifyOnValidationError=True}"
-                                             Header="Username" />
-                <controls:DataGridTemplateColumn x:Name="dgtcPassword"
-                                                 Width="125"
-                                                 Header="Password">
-                    <sdk:DataGridTemplateColumn.CellTemplate>
-                        <DataTemplate>
-                            <PasswordBox x:Name="pbPassword" Password="{Binding Password, Mode=TwoWay, ValidatesOnNotifyDataErrors=True, NotifyOnValidationError=True}" />
-                        </DataTemplate>
-                    </sdk:DataGridTemplateColumn.CellTemplate>
-                </controls:DataGridTemplateColumn>
-                <controls:DataGridTextColumn x:Name="dgtcEmail"
-                                             Width="150"
-                                             Binding="{Binding Email,
-                                                               Mode=TwoWay,
-                                                               ValidatesOnNotifyDataErrors=True,
-                                                               NotifyOnValidationError=True}"
-                                             Header="Email" />
-
-                <controls:DataGridTemplateColumn Width="150" Header="Date of Birth">
-                    <sdk:DataGridTemplateColumn.CellTemplate>
-                        <DataTemplate>
-                            <sdk:DatePicker x:Name="dpDateOfBirth"
-                                            KeyDown="DatePicker_KeyDown"
-                                            SelectedDate="{Binding DateOfBirth,
-                                                                   Mode=TwoWay,
-                                                                   ValidatesOnNotifyDataErrors=True,
-                                                                   NotifyOnValidationError=True}" />
-                        </DataTemplate>
-                    </sdk:DataGridTemplateColumn.CellTemplate>
-                </controls:DataGridTemplateColumn>
-                <controls:DataGridTextColumn x:Name="dgtcDescription"
-                                             Width="150"
-                                             Binding="{Binding INCORRECTPATH,
-                                                               Mode=TwoWay,
-                                                               ValidatesOnNotifyDataErrors=True,
-                                                               NotifyOnValidationError=True}"
-                                             Header="Description" />
-            </controls:DataGrid.Columns>
-        </controls:DataGrid>
-    </Grid>
-</UserControl>
--- a/SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-using System;
-using System.Windows.Browser;
-using System.Windows.Input;
-using SilverlightValidation.Data;
-using SilverlightValidation.ViewModels;
-using SilverlightValidation.Validators;
-
-namespace SilverlightValidation.Views
-{
-    public partial class UserListView
-    {
-        private readonly UserListViewModel vm;
-
-        public UserListView()
-        {
-            InitializeComponent();
-            HtmlPage.Document.SetProperty("title", "Silverlight Glimpse Demo");
-
-            vm = new UserListViewModel(Factory.CreateUserModels(), new UserModelValidator());
-            this.DataContext = vm;
-        }
-
-        private void DatePicker_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.Key != Key.Tab)
-                e.Handled = true;
-        }
-
-        private void btnThrowException_Click(object sender, System.Windows.RoutedEventArgs e)
-        {
-            throw new Exception("Oh dear we've hit an exception!",
-                                new Exception("This is an inner exception"));
-        }
-    }
-}
--- a/SilverlightGlimpse/SilverlightValidation/Views/UserView.xaml	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-<UserControl x:Class="SilverlightValidation.Views.UserView"
-             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
-
-    <Grid x:Name="LayoutRoot" Background="White">
-
-        <Grid.RowDefinitions>
-            <RowDefinition Height="30" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="30" />
-            <RowDefinition Height="50" />
-            <RowDefinition Height="120" />
-        </Grid.RowDefinitions>
-        <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="*" />
-            <ColumnDefinition Width="100" />
-            <ColumnDefinition Width="300" />
-            <ColumnDefinition Width="30" />
-            <ColumnDefinition Width="*" />
-        </Grid.ColumnDefinitions>
-
-        <TextBlock Grid.Row="1"
-                   Grid.Column="1"
-                   Style="{StaticResource LabelStyle}"
-                   Text="Username:" />
-
-        <TextBox x:Name="tbUsername"
-                 Grid.Row="1"
-                 Grid.Column="2"
-                 Style="{StaticResource TextBoxStyle}"
-                 Text="{Binding Username,
-                                Mode=TwoWay,
-                                ValidatesOnNotifyDataErrors=True,
-                                NotifyOnValidationError=True}" />
-
-        <sdk:DescriptionViewer Grid.Row="1"
-                               Grid.Column="3"
-                               Width="20"
-                               Description="Required" />
-
-        <TextBlock Grid.Row="2"
-                   Grid.Column="1"
-                   Style="{StaticResource LabelStyle}"
-                   Text="Password:" />
-
-        <PasswordBox x:Name="tbPassword"
-                     Grid.Row="2"
-                     Grid.Column="2"
-                     Password="{Binding Password,
-                                        Mode=TwoWay,
-                                        ValidatesOnNotifyDataErrors=True,
-                                        NotifyOnValidationError=True}"
-                     Style="{StaticResource PasswordBoxStyle}" />
-
-        <sdk:DescriptionViewer Grid.Row="2"
-                               Grid.Column="3"
-                               Width="20"
-                               Description="Required" />
-
-        <TextBlock Grid.Row="3"
-                   Grid.Column="1"
-                   Style="{StaticResource LabelStyle}"
-                   Text="Email:" />
-
-        <TextBox x:Name="tbEmail"
-                 Grid.Row="3"
-                 Grid.Column="2"
-                 Style="{StaticResource TextBoxStyle}"
-                 Text="{Binding Email,
-                                Mode=TwoWay,
-                                ValidatesOnNotifyDataErrors=True,
-                                NotifyOnValidationError=True}" />
-
-        <sdk:DescriptionViewer Grid.Row="3"
-                               Grid.Column="3"
-                               Width="20"
-                               Description="Required" />
-
-        <TextBlock Grid.Row="4"
-                   Grid.Column="1"
-                   Style="{StaticResource LabelStyle}"
-                   Text="Date of Birth:" />
-
-        <sdk:DatePicker x:Name="dpDateOfBirth"
-                        Grid.Row="4"
-                        Grid.Column="2"
-                        KeyDown="DatePicker_KeyDown"
-                        SelectedDate="{Binding DateOfBirth,
-                                               Mode=TwoWay,
-                                               ValidatesOnNotifyDataErrors=True,
-                                               NotifyOnValidationError=True}"
-                        Style="{StaticResource DatePickerStyle}" />
-        <sdk:DescriptionViewer Grid.Row="4"
-                               Grid.Column="3"
-                               Width="20"
-                               Description="Required" />
-
-        <TextBlock Grid.Row="5"
-                   Grid.Column="1"
-                   Style="{StaticResource LabelStyle}"
-                   Text="Description:" />
-
-        <TextBox x:Name="tbDescription"
-                 Grid.Row="5"
-                 Grid.Column="2"
-                 Style="{StaticResource TextBoxStyle}"
-                 Text="{Binding DescriptionWithATypeo}" />
-
-        <StackPanel Grid.Row="6"
-                    Grid.Column="2"
-                    HorizontalAlignment="Right"
-                    Orientation="Horizontal">
-            <Button x:Name="btnThrowException"
-                    Width="120"
-                    Click="btnThrowException_OnClick"
-                    Content="Throw Exception"
-                    Style="{StaticResource ButtonStyle}" />
-        </StackPanel>
-
-        <sdk:ValidationSummary Grid.Row="7"
-                               Grid.Column="1"
-                               Grid.ColumnSpan="2"
-                               Style="{StaticResource ValidationSummaryStyle}" />
-
-    </Grid>
-</UserControl>
\ No newline at end of file
--- a/SilverlightGlimpse/SilverlightValidation/Views/UserView.xaml.cs	Sun May 06 12:14:53 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-using System;
-using System.Windows;
-using System.Windows.Browser;
-using System.Windows.Input;
-using SilverlightValidation.Models;
-using SilverlightValidation.Validators;
-using SilverlightValidation.ViewModels;
-
-namespace SilverlightValidation.Views
-{
-    public partial class UserView
-    {
-        private UserViewModel vm;
-
-        public UserView()
-        {
-            InitializeComponent();
-            HtmlPage.Document.SetProperty("title", "Silverlight Validation");
-
-            vm = new UserViewModel(UserModel.Create(), new UserModelValidator());
-            this.DataContext = vm;
-
-            // uncomment this exception to view exception on startup 
-            //ThrowException();
-        }
-
-        private void DatePicker_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.Key != Key.Tab)
-                e.Handled = true;
-        }
-
-        private void btnThrowException_OnClick(object sender, RoutedEventArgs e)
-        {
-            ThrowException();
-        }
-
-        private void ThrowException()
-        {
-            throw new Exception("Oh dear we've hit an exception!");
-        }
-    }
-}
\ No newline at end of file