Added WPF client based on Caliburn.Micro
authorPanagiotis Kanavos <pkanavos@gmail.com>
Tue, 16 Aug 2011 14:01:53 +0000 (17:01 +0300)
committerPanagiotis Kanavos <pkanavos@gmail.com>
Tue, 16 Aug 2011 14:01:53 +0000 (17:01 +0300)
132 files changed:
trunk/NotifyIconWpf/BalloonIcon.cs [new file with mode: 0644]
trunk/NotifyIconWpf/DefaultTrayIcon.ico [new file with mode: 0644]
trunk/NotifyIconWpf/Diagrams/TaskbarIcon Overview.cd [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/BalloonFlags.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/IconDataMembers.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/IconState.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/MouseEvent.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/NotifyCommand.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/NotifyIconData.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/NotifyIconVersion.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/Point.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/TrayInfo.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/WinApi.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/WindowClass.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Interop/WindowMessageSink.cs [new file with mode: 0644]
trunk/NotifyIconWpf/NotifyIconWpf.csproj [new file with mode: 0644]
trunk/NotifyIconWpf/PopupActivationMode.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Properties/AssemblyInfo.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Properties/Resources.Designer.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Properties/Resources.resx [new file with mode: 0644]
trunk/NotifyIconWpf/RoutedEventHelper.cs [new file with mode: 0644]
trunk/NotifyIconWpf/TaskbarIcon.Declarations.cs [new file with mode: 0644]
trunk/NotifyIconWpf/TaskbarIcon.cs [new file with mode: 0644]
trunk/NotifyIconWpf/Util.cs [new file with mode: 0644]
trunk/NotifyIconWpf/pithos.snk [new file with mode: 0644]
trunk/Pithos.Client.WPF/App.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/App.xaml.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/AppBootstrapper.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Caliburn/Micro/Logging/DebugLogger.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Configuration/PithosSettings.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/FileEntry.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/IShell.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/Accounts.png [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/Advanced.png [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/Bandwidth.png [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/General.png [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/Network.png [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/Tray.ico [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/TrayInSynch.ico [new file with mode: 0644]
trunk/Pithos.Client.WPF/Images/TraySynching.ico [new file with mode: 0644]
trunk/Pithos.Client.WPF/MainWindow.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/MainWindow.xaml.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Pithos.Client.WPF.csproj [new file with mode: 0644]
trunk/Pithos.Client.WPF/PithosCommand.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/PithosStyles.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/PreferencesView.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/PreferencesView.xaml.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/PreferencesViewModel.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Properties/AssemblyInfo.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Properties/Resources.Designer.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Properties/Resources.resx [new file with mode: 0644]
trunk/Pithos.Client.WPF/Properties/Settings.Designer.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/Properties/Settings.settings [new file with mode: 0644]
trunk/Pithos.Client.WPF/ShellExtensionController.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/ShellView.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/ShellViewModel.cs [new file with mode: 0644]
trunk/Pithos.Client.WPF/WhistlerBlue.xaml [new file with mode: 0644]
trunk/Pithos.Client.WPF/app.config [new file with mode: 0644]
trunk/Pithos.Client.WPF/packages.config [new file with mode: 0644]
trunk/Pithos.sln
trunk/packages/Caliburn.Micro.1.2.0/Caliburn.Micro.1.2.0.nupkg [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.xml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ar/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/bg/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ca/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/cs/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/da/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/de/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/el/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/es/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/et/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/eu/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fi/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fr/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/he/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hr/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hu/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/id/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/it/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ja/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ko/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lt/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lv/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ms/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/nl/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/no/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pl/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt-BR/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ro/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ru/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sk/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sl/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Cyrl-CS/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Latn-CS/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sv/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/th/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/tr/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/uk/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/vi/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hans/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hant/System.Windows.Controls.resources.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/AppBootstrapper.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/IShell.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellView.xaml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellViewModel.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/AppBootstrapper.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/MainPageViewModel.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/AppBootstrapper.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/IShell.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellView.xaml [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellViewModel.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.1.2.0/tools/install.ps1 [new file with mode: 0644]
trunk/packages/Caliburn.Micro.Logging.1.2/Caliburn.Micro.Logging.1.2.nupkg [new file with mode: 0644]
trunk/packages/Caliburn.Micro.Logging.1.2/content/Caliburn/Micro/Logging/DebugLogger.cs [new file with mode: 0644]
trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40-client/Caliburn.Micro.Logging.dll [new file with mode: 0644]
trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40/Caliburn.Micro.Logging.dll [new file with mode: 0644]

diff --git a/trunk/NotifyIconWpf/BalloonIcon.cs b/trunk/NotifyIconWpf/BalloonIcon.cs
new file mode 100644 (file)
index 0000000..69d97eb
--- /dev/null
@@ -0,0 +1,49 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  ///<summary>
+  /// Supported icons for the tray's balloon messages.
+  ///</summary>
+  public enum BalloonIcon
+  {
+    /// <summary>
+    /// The balloon message is displayed without an icon.
+    /// </summary>
+    None,
+    /// <summary>
+    /// An information is displayed.
+    /// </summary>
+    Info,
+    /// <summary>
+    /// A warning is displayed.
+    /// </summary>
+    Warning,
+    /// <summary>
+    /// An error is displayed.
+    /// </summary>
+    Error
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/DefaultTrayIcon.ico b/trunk/NotifyIconWpf/DefaultTrayIcon.ico
new file mode 100644 (file)
index 0000000..e3ff3c4
Binary files /dev/null and b/trunk/NotifyIconWpf/DefaultTrayIcon.ico differ
diff --git a/trunk/NotifyIconWpf/Diagrams/TaskbarIcon Overview.cd b/trunk/NotifyIconWpf/Diagrams/TaskbarIcon Overview.cd
new file mode 100644 (file)
index 0000000..b43adff
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ClassDiagram MajorVersion="1" MinorVersion="1">
+  <Class Name="Hardcodet.Wpf.TaskbarNotification.TaskbarIcon">
+    <Position X="1.75" Y="0.5" Width="3.5" />
+    <Compartments>
+      <Compartment Name="Fields" Collapsed="true" />
+      <Compartment Name="Methods" Collapsed="true" />
+    </Compartments>
+    <TypeIdentifier>
+      <HashCode>N6qdVIeUdLmQtSUbiJhEGdYRjvJYXlhbEVBDKuPRO5s=</HashCode>
+      <FileName>TaskbarIcon.cs</FileName>
+    </TypeIdentifier>
+    <Lollipop Position="0.2" />
+  </Class>
+  <Enum Name="Hardcodet.Wpf.TaskbarNotification.PopupActivationMode">
+    <Position X="6.75" Y="0.5" Width="2" />
+    <TypeIdentifier>
+      <HashCode>ABAEAAAAAAAAAAABAAAAAAAAAAAAAAAAAIAKAIAAAAA=</HashCode>
+      <FileName>PopupActivationMode.cs</FileName>
+    </TypeIdentifier>
+  </Enum>
+  <Enum Name="Hardcodet.Wpf.TaskbarNotification.BalloonIcon">
+    <Position X="9.25" Y="0.5" Width="1.5" />
+    <TypeIdentifier>
+      <HashCode>AAAAAAAAAAAAAQAAAAAAABAAAAAAAAAAAAAAAEEAAAA=</HashCode>
+      <FileName>BalloonIcon.cs</FileName>
+    </TypeIdentifier>
+  </Enum>
+  <Font Name="Segoe UI" Size="9" />
+</ClassDiagram>
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/BalloonFlags.cs b/trunk/NotifyIconWpf/Interop/BalloonFlags.cs
new file mode 100644 (file)
index 0000000..aa325ca
--- /dev/null
@@ -0,0 +1,55 @@
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Flags that define the icon that is shown on a balloon
+  /// tooltip.
+  /// </summary>
+  public enum BalloonFlags
+  {
+    /// <summary>
+    /// No icon is displayed.
+    /// </summary>
+    None = 0x00,
+    /// <summary>
+    /// An information icon is displayed.
+    /// </summary>
+    Info = 0x01,
+    /// <summary>
+    /// A warning icon is displayed.
+    /// </summary>
+    Warning = 0x02,
+    /// <summary>
+    /// An error icon is displayed.
+    /// </summary>
+    Error = 0x03,
+    /// <summary>
+    /// Windows XP Service Pack 2 (SP2) and later.
+    /// Use a custom icon as the title icon.
+    /// </summary>
+    User = 0x04,
+    /// <summary>
+    /// Windows XP (Shell32.dll version 6.0) and later.
+    /// Do not play the associated sound. Applies only to balloon ToolTips.
+    /// </summary>
+    NoSound = 0x10,
+    /// <summary>
+    /// Windows Vista (Shell32.dll version 6.0.6) and later. The large version
+    /// of the icon should be used as the balloon icon. This corresponds to the
+    /// icon with dimensions SM_CXICON x SM_CYICON. If this flag is not set,
+    /// the icon with dimensions XM_CXSMICON x SM_CYSMICON is used.<br/>
+    /// - This flag can be used with all stock icons.<br/>
+    /// - Applications that use older customized icons (NIIF_USER with hIcon) must
+    ///   provide a new SM_CXICON x SM_CYICON version in the tray icon (hIcon). These
+    ///   icons are scaled down when they are displayed in the System Tray or
+    ///   System Control Area (SCA).<br/>
+    /// - New customized icons (NIIF_USER with hBalloonIcon) must supply an
+    ///   SM_CXICON x SM_CYICON version in the supplied icon (hBalloonIcon).
+    /// </summary>
+    LargeIcon = 0x20,
+    /// <summary>
+    /// Windows 7 and later.
+    /// </summary>
+    RespectQuietTime = 0x80
+    
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/IconDataMembers.cs b/trunk/NotifyIconWpf/Interop/IconDataMembers.cs
new file mode 100644 (file)
index 0000000..6156897
--- /dev/null
@@ -0,0 +1,67 @@
+using System;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Indicates which members of a <see cref="NotifyIconData"/> structure
+  /// were set, and thus contain valid data or provide additional information
+  /// to the ToolTip as to how it should display.
+  /// </summary>
+  [Flags]
+  public enum IconDataMembers
+  {
+    /// <summary>
+    /// The message ID is set.
+    /// </summary>
+    Message = 0x01,
+    /// <summary>
+    /// The notification icon is set.
+    /// </summary>
+    Icon = 0x02,
+    /// <summary>
+    /// The tooltip is set.
+    /// </summary>
+    Tip = 0x04,
+    /// <summary>
+    /// State information (<see cref="IconState"/>) is set. This
+    /// applies to both <see cref="NotifyIconData.IconState"/> and
+    /// <see cref="NotifyIconData.StateMask"/>.
+    /// </summary>
+    State = 0x08,
+    /// <summary>
+    /// The balloon ToolTip is set. Accordingly, the following
+    /// members are set: <see cref="NotifyIconData.BalloonText"/>,
+    /// <see cref="NotifyIconData.BalloonTitle"/>, <see cref="NotifyIconData.BalloonFlags"/>,
+    /// and <see cref="NotifyIconData.VersionOrTimeout"/>.
+    /// </summary>
+    Info = 0x10,
+    
+    /// <summary>
+    /// Internal identifier is set. Reserved, thus commented out.
+    /// </summary>
+    //Guid = 0x20,
+
+    /// <summary>
+    /// Windows Vista (Shell32.dll version 6.0.6) and later. If the ToolTip
+    /// cannot be displayed immediately, discard it.<br/>
+    /// Use this flag for ToolTips that represent real-time information which
+    /// would be meaningless or misleading if displayed at a later time.
+    /// For example, a message that states "Your telephone is ringing."<br/>
+    /// This modifies and must be combined with the <see cref="Info"/> flag.
+    /// </summary>
+    Realtime = 0x40,
+    /// <summary>
+    /// Windows Vista (Shell32.dll version 6.0.6) and later.
+    /// Use the standard ToolTip. Normally, when uVersion is set
+    /// to NOTIFYICON_VERSION_4, the standard ToolTip is replaced
+    /// by the application-drawn pop-up user interface (UI).
+    /// If the application wants to show the standard tooltip
+    /// in that case, regardless of whether the on-hover UI is showing,
+    /// it can specify NIF_SHOWTIP to indicate the standard tooltip
+    /// should still be shown.<br/>
+    /// Note that the NIF_SHOWTIP flag is effective until the next call 
+    /// to Shell_NotifyIcon.
+    /// </summary>
+    UseLegacyToolTips = 0x80
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/IconState.cs b/trunk/NotifyIconWpf/Interop/IconState.cs
new file mode 100644 (file)
index 0000000..338bb1b
--- /dev/null
@@ -0,0 +1,23 @@
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// The state of the icon - can be set to
+  /// hide the icon.
+  /// </summary>
+  public enum IconState
+  {
+    /// <summary>
+    /// The icon is visible.
+    /// </summary>
+    Visible = 0x00,
+    /// <summary>
+    /// Hide the icon.
+    /// </summary>
+    Hidden = 0x01,
+
+    /// <summary>
+    /// The icon is shared - currently not supported, thus commented out.
+    /// </summary>
+    //Shared = 0x02
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/MouseEvent.cs b/trunk/NotifyIconWpf/Interop/MouseEvent.cs
new file mode 100644 (file)
index 0000000..9fa39ca
--- /dev/null
@@ -0,0 +1,48 @@
+
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Event flags for clicked events.
+  /// </summary>
+  public enum MouseEvent
+  {
+    /// <summary>
+    /// The mouse was moved withing the
+    /// taskbar icon's area.
+    /// </summary>
+    MouseMove,
+    /// <summary>
+    /// The right mouse button was clicked.
+    /// </summary>
+    IconRightMouseDown,
+    /// <summary>
+    /// The left mouse button was clicked.
+    /// </summary>
+    IconLeftMouseDown,
+    /// <summary>
+    /// The right mouse button was released.
+    /// </summary>
+    IconRightMouseUp,
+    /// <summary>
+    /// The left mouse button was released.
+    /// </summary>
+    IconLeftMouseUp,
+    /// <summary>
+    /// The middle mouse button was clicked.
+    /// </summary>
+    IconMiddleMouseDown,
+    /// <summary>
+    /// The middle mouse button was released.
+    /// </summary>
+    IconMiddleMouseUp,
+    /// <summary>
+    /// The taskbar icon was double clicked.
+    /// </summary>
+    IconDoubleClick,
+    /// <summary>
+    /// The balloon tip was clicked.
+    /// </summary>
+    BalloonToolTipClicked
+  }
+}
diff --git a/trunk/NotifyIconWpf/Interop/NotifyCommand.cs b/trunk/NotifyIconWpf/Interop/NotifyCommand.cs
new file mode 100644 (file)
index 0000000..5a8c7ee
--- /dev/null
@@ -0,0 +1,39 @@
+
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Main operations performed on the
+  /// <see cref="WinApi.Shell_NotifyIcon"/> function.
+  /// </summary>
+  public enum NotifyCommand
+  {
+    /// <summary>
+    /// The taskbar icon is being created.
+    /// </summary>
+    Add = 0x00,
+    /// <summary>
+    /// The settings of the taskbar icon are being updated.
+    /// </summary>
+    Modify = 0x01,
+    /// <summary>
+    /// The taskbar icon is deleted.
+    /// </summary>
+    Delete = 0x02,
+    /// <summary>
+    /// Focus is returned to the taskbar icon. Currently not in use.
+    /// </summary>
+    SetFocus = 0x03,
+    /// <summary>
+    /// Shell32.dll version 5.0 and later only. Instructs the taskbar
+    /// to behave according to the version number specified in the 
+    /// uVersion member of the structure pointed to by lpdata.
+    /// This message allows you to specify whether you want the version
+    /// 5.0 behavior found on Microsoft Windows 2000 systems, or the
+    /// behavior found on earlier Shell versions. The default value for
+    /// uVersion is zero, indicating that the original Windows 95 notify
+    /// icon behavior should be used.
+    /// </summary>
+    SetVersion = 0x04
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/NotifyIconData.cs b/trunk/NotifyIconWpf/Interop/NotifyIconData.cs
new file mode 100644 (file)
index 0000000..9512f1e
--- /dev/null
@@ -0,0 +1,166 @@
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// A struct that is submitted in order to configure
+  /// the taskbar icon. Provides various members that
+  /// can be configured partially, according to the
+  /// values of the <see cref="IconDataMembers"/>
+  /// that were defined.
+  /// </summary>
+  [StructLayout(LayoutKind.Sequential)]
+  public struct NotifyIconData
+  {
+    /// <summary>
+    /// Size of this structure, in bytes.
+    /// </summary>
+    public uint cbSize;
+
+    /// <summary>
+    /// Handle to the window that receives notification messages associated with an icon in the
+    /// taskbar status area. The Shell uses hWnd and uID to identify which icon to operate on
+    /// when Shell_NotifyIcon is invoked.
+    /// </summary>
+    public IntPtr WindowHandle;
+
+    /// <summary>
+    /// Application-defined identifier of the taskbar icon. The Shell uses hWnd and uID to identify
+    /// which icon to operate on when Shell_NotifyIcon is invoked. You can have multiple icons
+    /// associated with a single hWnd by assigning each a different uID. This feature, however
+    /// is currently not used.
+    /// </summary>
+    public uint TaskbarIconId;
+
+    /// <summary>
+    /// Flags that indicate which of the other members contain valid data. This member can be
+    /// a combination of the NIF_XXX constants.
+    /// </summary>
+    public IconDataMembers ValidMembers;
+
+    /// <summary>
+    /// Application-defined message identifier. The system uses this identifier to send
+    /// notifications to the window identified in hWnd.
+    /// </summary>
+    public uint CallbackMessageId;
+
+    /// <summary>
+    /// A handle to the icon that should be displayed. Just
+    /// <see cref="Icon.Handle"/>.
+    /// </summary>
+    public IntPtr IconHandle;
+
+    /// <summary>
+    /// String with the text for a standard ToolTip. It can have a maximum of 64 characters including
+    /// the terminating NULL. For Version 5.0 and later, szTip can have a maximum of
+    /// 128 characters, including the terminating NULL.
+    /// </summary>
+    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] public string ToolTipText;
+
+
+    /// <summary>
+    /// State of the icon. Remember to also set the <see cref="StateMask"/>.
+    /// </summary>
+    public IconState IconState;
+
+    /// <summary>
+    /// A value that specifies which bits of the state member are retrieved or modified.
+    /// For example, setting this member to <see cref="Interop.IconState.Hidden"/>
+    /// causes only the item's hidden
+    /// state to be retrieved.
+    /// </summary>
+    public IconState StateMask;
+
+    /// <summary>
+    /// String with the text for a balloon ToolTip. It can have a maximum of 255 characters.
+    /// To remove the ToolTip, set the NIF_INFO flag in uFlags and set szInfo to an empty string.
+    /// </summary>
+    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string BalloonText;
+
+    /// <summary>
+    /// Mainly used to set the version when <see cref="WinApi.Shell_NotifyIcon"/> is invoked
+    /// with <see cref="NotifyCommand.SetVersion"/>. However, for legacy operations,
+    /// the same member is also used to set timouts for balloon ToolTips.
+    /// </summary>
+    public uint VersionOrTimeout;
+
+    /// <summary>
+    /// String containing a title for a balloon ToolTip. This title appears in boldface
+    /// above the text. It can have a maximum of 63 characters.
+    /// </summary>
+    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string BalloonTitle;
+
+    /// <summary>
+    /// Adds an icon to a balloon ToolTip, which is placed to the left of the title. If the
+    /// <see cref="BalloonTitle"/> member is zero-length, the icon is not shown.
+    /// </summary>
+    public BalloonFlags BalloonFlags;
+
+    /// <summary>
+    /// Windows XP (Shell32.dll version 6.0) and later.<br/>
+    /// - Windows 7 and later: A registered GUID that identifies the icon.
+    ///   This value overrides uID and is the recommended method of identifying the icon.<br/>
+    /// - Windows XP through Windows Vista: Reserved.
+    /// </summary>
+    public Guid TaskbarIconGuid;
+
+    /// <summary>
+    /// Windows Vista (Shell32.dll version 6.0.6) and later. The handle of a customized
+    /// balloon icon provided by the application that should be used independently
+    /// of the tray icon. If this member is non-NULL and the <see cref="Interop.BalloonFlags.User"/>
+    /// flag is set, this icon is used as the balloon icon.<br/>
+    /// If this member is NULL, the legacy behavior is carried out.
+    /// </summary>
+    public IntPtr CustomBalloonIconHandle;
+
+
+    /// <summary>
+    /// Creates a default data structure that provides
+    /// a hidden taskbar icon without the icon being set.
+    /// </summary>
+    /// <param name="handle"></param>
+    /// <returns></returns>
+    public static NotifyIconData CreateDefault(IntPtr handle)
+    {
+      var data = new NotifyIconData();
+
+      if (Environment.OSVersion.Version.Major >= 6)
+      {
+        //use the current size
+        data.cbSize = (uint)Marshal.SizeOf(data);
+      }
+      else
+      {
+        //we need to set another size on xp/2003- otherwise certain
+        //features (e.g. balloon tooltips) don't work.
+        data.cbSize = 504;
+
+        //set to fixed timeout
+        data.VersionOrTimeout = 10;
+      }
+
+      data.WindowHandle = handle;
+      data.TaskbarIconId = 0x0;
+      data.CallbackMessageId = WindowMessageSink.CallbackMessageId;
+      data.VersionOrTimeout = (uint) NotifyIconVersion.Win95;
+
+      data.IconHandle = IntPtr.Zero;
+
+      //hide initially
+      data.IconState = IconState.Hidden;
+      data.StateMask = IconState.Hidden;
+
+      //set flags
+      data.ValidMembers = IconDataMembers.Message
+                    | IconDataMembers.Icon
+                    | IconDataMembers.Tip;
+
+      //reset strings
+      data.ToolTipText = data.BalloonText = data.BalloonTitle = String.Empty;
+
+      return data;
+    }
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/NotifyIconVersion.cs b/trunk/NotifyIconWpf/Interop/NotifyIconVersion.cs
new file mode 100644 (file)
index 0000000..85852b7
--- /dev/null
@@ -0,0 +1,25 @@
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// The notify icon version that is used. The higher
+  /// the version, the more capabilities are available.
+  /// </summary>
+  public enum NotifyIconVersion
+  {
+    /// <summary>
+    /// Default behavior (legacy Win95). Expects
+    /// a <see cref="NotifyIconData"/> size of 488.
+    /// </summary>
+    Win95 = 0x0,
+    /// <summary>
+    /// Behavior representing Win2000 an higher. Expects
+    /// a <see cref="NotifyIconData"/> size of 504.
+    /// </summary>
+    Win2000 = 0x3,
+    /// <summary>
+    /// Extended tooltip support, which is available
+    /// for Vista and later.
+    /// </summary>
+    Vista = 0x4
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/Point.cs b/trunk/NotifyIconWpf/Interop/Point.cs
new file mode 100644 (file)
index 0000000..f05d53f
--- /dev/null
@@ -0,0 +1,14 @@
+using System.Runtime.InteropServices;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Win API struct providing coordinates for a single point.
+  /// </summary>
+  [StructLayout(LayoutKind.Sequential)]
+  public struct Point
+  {
+    public int X;
+    public int Y;
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/TrayInfo.cs b/trunk/NotifyIconWpf/Interop/TrayInfo.cs
new file mode 100644 (file)
index 0000000..db0d1b3
--- /dev/null
@@ -0,0 +1,171 @@
+// Some interop code taken from Mike Marshall's AnyForm
+
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Resolves the current tray position.
+  /// </summary>
+  public static class TrayInfo
+  {
+    /// <summary>
+    /// Gets the position of the system tray.
+    /// </summary>
+    /// <returns>Tray coordinates.</returns>
+    public static Point GetTrayLocation()
+    {
+      var info = new AppBarInfo();
+      info.GetSystemTaskBarPosition();
+
+      Rectangle rcWorkArea = info.WorkArea;
+
+      int x = 0, y = 0;
+      if (info.Edge == AppBarInfo.ScreenEdge.Left)
+      {
+        x = rcWorkArea.Left + 2;
+        y = rcWorkArea.Bottom;
+      }
+      else if (info.Edge == AppBarInfo.ScreenEdge.Bottom)
+      {
+        x = rcWorkArea.Right;
+        y = rcWorkArea.Bottom;
+      }
+      else if (info.Edge == AppBarInfo.ScreenEdge.Top)
+      {
+        x = rcWorkArea.Right;
+        y = rcWorkArea.Top;
+      }
+      else if (info.Edge == AppBarInfo.ScreenEdge.Right)
+      {
+        x = rcWorkArea.Right;
+        y = rcWorkArea.Bottom;
+      }
+
+      return new Point { X = x, Y = y};
+    }
+  }
+
+
+
+
+  internal class AppBarInfo
+  {
+
+    [DllImport("user32.dll")]
+    private static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
+
+    [DllImport("shell32.dll")]
+    private static extern UInt32 SHAppBarMessage(UInt32 dwMessage, ref APPBARDATA data);
+
+    [DllImport("user32.dll")]
+    private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam,
+                                                     IntPtr pvParam, UInt32 fWinIni);
+
+
+    private const int ABE_BOTTOM = 3;
+    private const int ABE_LEFT = 0;
+    private const int ABE_RIGHT = 2;
+    private const int ABE_TOP = 1;
+
+    private const int ABM_GETTASKBARPOS = 0x00000005;
+
+    // SystemParametersInfo constants
+    private const UInt32 SPI_GETWORKAREA = 0x0030;
+
+    private APPBARDATA m_data;
+
+    public ScreenEdge Edge
+    {
+      get { return (ScreenEdge) m_data.uEdge; }
+    }
+
+
+    public Rectangle WorkArea
+    {
+      get
+      {
+        Int32 bResult = 0;
+        var rc = new RECT();
+        IntPtr rawRect = Marshal.AllocHGlobal(Marshal.SizeOf(rc));
+        bResult = SystemParametersInfo(SPI_GETWORKAREA, 0, rawRect, 0);
+        rc = (RECT) Marshal.PtrToStructure(rawRect, rc.GetType());
+
+        if (bResult == 1)
+        {
+          Marshal.FreeHGlobal(rawRect);
+          return new Rectangle(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
+        }
+
+        return new Rectangle(0, 0, 0, 0);
+      }
+    }
+
+
+
+    public void GetPosition(string strClassName, string strWindowName)
+    {
+      m_data = new APPBARDATA();
+      m_data.cbSize = (UInt32) Marshal.SizeOf(m_data.GetType());
+
+      IntPtr hWnd = FindWindow(strClassName, strWindowName);
+
+      if (hWnd != IntPtr.Zero)
+      {
+        UInt32 uResult = SHAppBarMessage(ABM_GETTASKBARPOS, ref m_data);
+
+        if (uResult != 1)
+        {
+          throw new Exception("Failed to communicate with the given AppBar");
+        }
+      }
+      else
+      {
+        throw new Exception("Failed to find an AppBar that matched the given criteria");
+      }
+    }
+
+
+    public void GetSystemTaskBarPosition()
+    {
+      GetPosition("Shell_TrayWnd", null);
+    }
+
+
+
+
+    public enum ScreenEdge
+    {
+      Undefined = -1,
+      Left = ABE_LEFT,
+      Top = ABE_TOP,
+      Right = ABE_RIGHT,
+      Bottom = ABE_BOTTOM
+    }
+
+
+    [StructLayout(LayoutKind.Sequential)]
+    private struct APPBARDATA
+    {
+      public UInt32 cbSize;
+      public IntPtr hWnd;
+      public UInt32 uCallbackMessage;
+      public UInt32 uEdge;
+      public RECT rc;
+      public Int32 lParam;
+    }
+
+    [StructLayout(LayoutKind.Sequential)]
+    private struct RECT
+    {
+      public Int32 left;
+      public Int32 top;
+      public Int32 right;
+      public Int32 bottom;
+    }
+
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/WinApi.cs b/trunk/NotifyIconWpf/Interop/WinApi.cs
new file mode 100644 (file)
index 0000000..6461ee4
--- /dev/null
@@ -0,0 +1,87 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Win32 API imports.
+  /// </summary>
+  internal static class WinApi
+  {
+    /// <summary>
+    /// Creates, updates or deletes the taskbar icon.
+    /// </summary>
+    [DllImport("shell32.Dll")]
+    public static extern bool Shell_NotifyIcon(NotifyCommand cmd, [In]ref NotifyIconData data);
+
+
+    /// <summary>
+    /// Creates the helper window that receives messages from the taskar icon.
+    /// </summary>
+    [DllImport("USER32.DLL", EntryPoint = "CreateWindowExW", SetLastError = true)]
+    public static extern IntPtr CreateWindowEx(int dwExStyle, [MarshalAs(UnmanagedType.LPWStr)] string lpClassName,
+                           [MarshalAs(UnmanagedType.LPWStr)] string lpWindowName, int dwStyle, int x, int y,
+                           int nWidth, int nHeight, uint hWndParent, int hMenu, int hInstance,
+                           int lpParam);
+
+
+    /// <summary>
+    /// Processes a default windows procedure.
+    /// </summary>
+    [DllImport("USER32.DLL")]
+    public static extern long DefWindowProc(IntPtr hWnd, uint msg, uint wparam, uint lparam);
+    
+    /// <summary>
+    /// Registers the helper window class.
+    /// </summary>
+    [DllImport("USER32.DLL", EntryPoint = "RegisterClassW", SetLastError = true)]
+    public static extern short RegisterClass(ref WindowClass lpWndClass);
+
+    /// <summary>
+    /// Registers a listener for a window message.
+    /// </summary>
+    /// <param name="lpString"></param>
+    /// <returns></returns>
+    [DllImport("User32.Dll", EntryPoint = "RegisterWindowMessageW")]
+    public static extern uint RegisterWindowMessage([MarshalAs(UnmanagedType.LPWStr)] string lpString);
+
+    /// <summary>
+    /// Used to destroy the hidden helper window that receives messages from the
+    /// taskbar icon.
+    /// </summary>
+    /// <param name="hWnd"></param>
+    /// <returns></returns>
+    [DllImport("USER32.DLL", SetLastError = true)]
+    public static extern bool DestroyWindow(IntPtr hWnd);
+
+
+    /// <summary>
+    /// Gives focus to a given window.
+    /// </summary>
+    /// <param name="hWnd"></param>
+    /// <returns></returns>
+    [DllImport("USER32.DLL")]
+    public static extern bool SetForegroundWindow(IntPtr hWnd);
+
+
+    /// <summary>
+    /// Gets the maximum number of milliseconds that can elapse between a
+    /// first click and a second click for the OS to consider the
+    /// mouse action a double-click.
+    /// </summary>
+    /// <returns>The maximum amount of time, in milliseconds, that can
+    /// elapse between a first click and a second click for the OS to
+    /// consider the mouse action a double-click.</returns>
+    [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
+    public static extern int GetDoubleClickTime();
+
+
+    /// <summary>
+    /// Gets the screen coordinates of the current mouse position.
+    /// </summary>
+    /// <param name="lpPoint"></param>
+    /// <returns></returns>
+    [DllImport("USER32.DLL", SetLastError = true)]
+    public static extern bool GetCursorPos(ref Point lpPoint);
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/WindowClass.cs b/trunk/NotifyIconWpf/Interop/WindowClass.cs
new file mode 100644 (file)
index 0000000..7d7b422
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Callback delegate which is used by the Windows API to
+  /// submit window messages.
+  /// </summary>
+  public delegate long WindowProcedureHandler(IntPtr hwnd, uint uMsg, uint wparam, uint lparam);
+
+
+  /// <summary>
+  /// Win API WNDCLASS struct - represents a single window.
+  /// Used to receive window messages.
+  /// </summary>
+  [StructLayout(LayoutKind.Sequential)]
+  public struct WindowClass
+  {
+    public uint style;
+    public WindowProcedureHandler lpfnWndProc;
+    public int cbClsExtra;
+    public int cbWndExtra;
+    public IntPtr hInstance;
+    public IntPtr hIcon;
+    public IntPtr hCursor;
+    public IntPtr hbrBackground;
+    [MarshalAs(UnmanagedType.LPWStr)] public string lpszMenuName;
+    [MarshalAs(UnmanagedType.LPWStr)] public string lpszClassName;
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Interop/WindowMessageSink.cs b/trunk/NotifyIconWpf/Interop/WindowMessageSink.cs
new file mode 100644 (file)
index 0000000..fafea31
--- /dev/null
@@ -0,0 +1,369 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+
+namespace Hardcodet.Wpf.TaskbarNotification.Interop
+{
+  /// <summary>
+  /// Receives messages from the taskbar icon through
+  /// window messages of an underlying helper window.
+  /// </summary>
+  public class WindowMessageSink : IDisposable
+  {
+
+    #region members
+
+    /// <summary>
+    /// The ID of messages that are received from the the
+    /// taskbar icon.
+    /// </summary>
+    public const int CallbackMessageId = 0x400;
+
+    /// <summary>
+    /// The ID of the message that is being received if the
+    /// taskbar is (re)started.
+    /// </summary>
+    private uint taskbarRestartMessageId;
+
+    /// <summary>
+    /// Used to track whether a mouse-up event is just
+    /// the aftermath of a double-click and therefore needs
+    /// to be suppressed.
+    /// </summary>
+    private bool isDoubleClick;
+
+    /// <summary>
+    /// A delegate that processes messages of the hidden
+    /// native window that receives window messages. Storing
+    /// this reference makes sure we don't loose our reference
+    /// to the message window.
+    /// </summary>
+    private WindowProcedureHandler messageHandler;
+
+    /// <summary>
+    /// Window class ID.
+    /// </summary>
+    internal string WindowId { get; private set; }
+
+    /// <summary>
+    /// Handle for the message window.
+    /// </summary
+    internal IntPtr MessageWindowHandle { get; private set; }
+
+    /// <summary>
+    /// The version of the underlying icon. Defines how
+    /// incoming messages are interpreted.
+    /// </summary>
+    public NotifyIconVersion Version { get; set; }
+
+    #endregion
+
+
+    #region events
+
+    /// <summary>
+    /// The custom tooltip should be closed or hidden.
+    /// </summary>
+    public event Action<bool> ChangeToolTipStateRequest;
+
+    /// <summary>
+    /// Fired in case the user clicked or moved within
+    /// the taskbar icon area.
+    /// </summary>
+    public event Action<MouseEvent> MouseEventReceived;
+
+    /// <summary>
+    /// Fired if a balloon ToolTip was either displayed
+    /// or closed (indicated by the boolean flag).
+    /// </summary>
+    public event Action<bool> BalloonToolTipChanged;
+
+    /// <summary>
+    /// Fired if the taskbar was created or restarted. Requires the taskbar
+    /// icon to be reset.
+    /// </summary>
+    public event Action TaskbarCreated;
+
+    #endregion
+
+
+    #region construction
+
+    /// <summary>
+    /// Creates a new message sink that receives message from
+    /// a given taskbar icon.
+    /// </summary>
+    /// <param name="version"></param>
+    public WindowMessageSink(NotifyIconVersion version)
+    {
+      Version = version;
+      CreateMessageWindow();
+    }
+
+
+    private WindowMessageSink()
+    {
+    }
+
+
+    /// <summary>
+    /// Creates a dummy instance that provides an empty
+    /// pointer rather than a real window handler.<br/>
+    /// Used at design time.
+    /// </summary>
+    /// <returns></returns>
+    internal static WindowMessageSink CreateEmpty()
+    {
+      return new WindowMessageSink
+                   {
+                       MessageWindowHandle = IntPtr.Zero,
+                       Version = NotifyIconVersion.Vista
+                   };
+    }
+
+    #endregion
+
+
+    #region CreateMessageWindow
+
+    /// <summary>
+    /// Creates the helper message window that is used
+    /// to receive messages from the taskbar icon.
+    /// </summary>
+    private void CreateMessageWindow()
+    {
+      //generate a unique ID for the window
+      WindowId = "WPFTaskbarIcon_" + DateTime.Now.Ticks;
+
+      //register window message handler
+      messageHandler = OnWindowMessageReceived;
+
+      // Create a simple window class which is reference through
+      //the messageHandler delegate
+      WindowClass wc;
+
+      wc.style = 0;
+      wc.lpfnWndProc = messageHandler;
+      wc.cbClsExtra = 0;
+      wc.cbWndExtra = 0;
+      wc.hInstance = IntPtr.Zero;
+      wc.hIcon = IntPtr.Zero;
+      wc.hCursor = IntPtr.Zero;
+      wc.hbrBackground = IntPtr.Zero;
+      wc.lpszMenuName = "";
+      wc.lpszClassName = WindowId;
+
+      // Register the window class
+      WinApi.RegisterClass(ref wc);
+
+      // Get the message used to indicate the taskbar has been restarted
+      // This is used to re-add icons when the taskbar restarts
+      taskbarRestartMessageId = WinApi.RegisterWindowMessage("TaskbarCreated");
+
+      // Create the message window
+      MessageWindowHandle = WinApi.CreateWindowEx(0, WindowId, "", 0, 0, 0, 1, 1, 0, 0, 0, 0);
+
+      if (MessageWindowHandle == IntPtr.Zero)
+      {
+        throw new Win32Exception();
+      }
+    }
+
+    #endregion
+
+
+    #region Handle Window Messages
+
+    /// <summary>
+    /// Callback method that receives messages from the taskbar area.
+    /// </summary>
+    private long OnWindowMessageReceived(IntPtr hwnd, uint messageId, uint wparam, uint lparam)
+    {
+      if (messageId == taskbarRestartMessageId)
+      {
+        //recreate the icon if the taskbar was restarted (e.g. due to Win Explorer shutdown)
+        TaskbarCreated();
+      }
+
+      //forward message
+      ProcessWindowMessage(messageId, wparam, lparam);
+
+      // Pass the message to the default window procedure
+      return WinApi.DefWindowProc(hwnd, messageId, wparam, lparam);
+    }
+
+
+    /// <summary>
+    /// Processes incoming system messages.
+    /// </summary>
+    /// <param name="msg">Callback ID.</param>
+    /// <param name="wParam">If the version is <see cref="NotifyIconVersion.Vista"/>
+    /// or higher, this parameter can be used to resolve mouse coordinates.
+    /// Currently not in use.</param>
+    /// <param name="lParam">Provides information about the event.</param>
+    private void ProcessWindowMessage(uint msg, uint wParam, uint lParam)
+    {
+      if (msg != CallbackMessageId) return;
+
+      switch (lParam)
+      {
+        case 0x200:
+          MouseEventReceived(MouseEvent.MouseMove);
+          break;
+
+        case 0x201:
+          MouseEventReceived(MouseEvent.IconLeftMouseDown);
+          break;
+
+        case 0x202:
+          if (!isDoubleClick)
+          {
+            MouseEventReceived(MouseEvent.IconLeftMouseUp);
+          }
+          isDoubleClick = false;
+          break;
+
+        case 0x203:
+          isDoubleClick = true;
+          MouseEventReceived(MouseEvent.IconDoubleClick);
+          break;
+
+        case 0x204:
+          MouseEventReceived(MouseEvent.IconRightMouseDown);
+          break;
+
+        case 0x205:
+          MouseEventReceived(MouseEvent.IconRightMouseUp);
+          break;
+
+        case 0x206:
+          //double click with right mouse button - do not trigger event
+          break;
+
+        case 0x207:
+          MouseEventReceived(MouseEvent.IconMiddleMouseDown);
+          break;
+
+        case 520:
+          MouseEventReceived(MouseEvent.IconMiddleMouseUp);
+          break;
+
+        case 0x209:
+          //double click with middle mouse button - do not trigger event
+          break;
+
+        case 0x402:
+          BalloonToolTipChanged(true);
+          break;
+
+        case 0x403:
+        case 0x404:
+          BalloonToolTipChanged(false);
+          break;
+
+        case 0x405:
+          MouseEventReceived(MouseEvent.BalloonToolTipClicked);
+          break;
+
+        case 0x406:
+          ChangeToolTipStateRequest(true);
+          break;
+
+        case 0x407:
+          ChangeToolTipStateRequest(false);
+          break;
+
+        default:
+          Debug.WriteLine("Unhandled NotifyIcon message ID: " + lParam);
+          break;
+      }
+
+    }
+
+    #endregion
+
+
+    #region Dispose
+
+    /// <summary>
+    /// Set to true as soon as <see cref="Dispose"/>
+    /// has been invoked.
+    /// </summary>
+    public bool IsDisposed { get; private set; }
+
+
+    /// <summary>
+    /// Disposes the object.
+    /// </summary>
+    /// <remarks>This method is not virtual by design. Derived classes
+    /// should override <see cref="Dispose(bool)"/>.
+    /// </remarks>
+    public void Dispose()
+    {
+      Dispose(true);
+
+      // This object will be cleaned up by the Dispose method.
+      // Therefore, you should call GC.SupressFinalize to
+      // take this object off the finalization queue 
+      // and prevent finalization code for this object
+      // from executing a second time.
+      GC.SuppressFinalize(this);
+    }
+
+    /// <summary>
+    /// This destructor will run only if the <see cref="Dispose()"/>
+    /// method does not get called. This gives this base class the
+    /// opportunity to finalize.
+    /// <para>
+    /// Important: Do not provide destructors in types derived from
+    /// this class.
+    /// </para>
+    /// </summary>
+    ~WindowMessageSink()
+    {
+      Dispose(false);
+    }
+
+
+    /// <summary>
+    /// Removes the windows hook that receives window
+    /// messages and closes the underlying helper window.
+    /// </summary>
+    private void Dispose(bool disposing)
+    {
+      //don't do anything if the component is already disposed
+      if (IsDisposed || !disposing) return;
+      IsDisposed = true;
+
+      WinApi.DestroyWindow(MessageWindowHandle);
+      messageHandler = null;
+    }
+
+    #endregion
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/NotifyIconWpf.csproj b/trunk/NotifyIconWpf/NotifyIconWpf.csproj
new file mode 100644 (file)
index 0000000..8ec2521
--- /dev/null
@@ -0,0 +1,142 @@
+<?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>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{7AC63864-7638-41C4-969C-D3197EF2BED9}</ProjectGuid>
+    <OutputType>library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Hardcodet.Wpf.TaskbarNotification</RootNamespace>
+    <AssemblyName>Hardcodet.Wpf.TaskbarNotification</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <DocumentationFile>bin\Release\Hardcodet.Wpf.TaskbarNotification.xml</DocumentationFile>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>pithos.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xaml" />
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="BalloonIcon.cs" />
+    <Compile Include="Interop\TrayInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Interop\Point.cs" />
+    <Compile Include="Interop\WindowClass.cs" />
+    <Compile Include="PopupActivationMode.cs" />
+    <Compile Include="RoutedEventHelper.cs" />
+    <Compile Include="Interop\WinApi.cs" />
+    <Compile Include="Interop\MouseEvent.cs" />
+    <Compile Include="Interop\NotifyCommand.cs" />
+    <Compile Include="Interop\NotifyIconData.cs" />
+    <Compile Include="Interop\IconDataMembers.cs" />
+    <Compile Include="Interop\IconState.cs" />
+    <Compile Include="Interop\NotifyIconVersion.cs" />
+    <Compile Include="Interop\BalloonFlags.cs" />
+    <Compile Include="Interop\WindowMessageSink.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="TaskbarIcon.cs" />
+    <Compile Include="TaskbarIcon.Declarations.cs" />
+    <Compile Include="Util.cs" />
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="Diagrams\TaskbarIcon Overview.cd" />
+    <AppDesigner Include="Properties\" />
+    <None Include="pithos.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="DefaultTrayIcon.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.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>
+  -->
+</Project>
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/PopupActivationMode.cs b/trunk/NotifyIconWpf/PopupActivationMode.cs
new file mode 100644 (file)
index 0000000..1611c59
--- /dev/null
@@ -0,0 +1,69 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  /// <summary>
+  /// Defines flags that define when a popup
+  /// is being displyed.
+  /// </summary>
+  public enum PopupActivationMode
+  {
+    /// <summary>
+    /// The item is displayed if the user clicks the
+    /// tray icon with the left mouse button.
+    /// </summary>
+    LeftClick,
+    /// <summary>
+    /// The item is displayed if the user clicks the
+    /// tray icon with the right mouse button.
+    /// </summary>
+    RightClick,
+    /// <summary>
+    /// The item is displayed if the user double-clicks the
+    /// tray icon.
+    /// </summary>
+    DoubleClick,
+    /// <summary>
+    /// The item is displayed if the user clicks the
+    /// tray icon with the left or the right mouse button.
+    /// </summary>
+    LeftOrRightClick,
+    /// <summary>
+    /// The item is displayed if the user clicks the
+    /// tray icon with the left mouse button or if a
+    /// double-click is being performed.
+    /// </summary>
+    LeftOrDoubleClick,
+    /// <summary>
+    /// The item is displayed if the user clicks the
+    /// tray icon with the middle mouse button.
+    /// </summary>
+    MiddleClick,
+    /// <summary>
+    /// The item is displayed whenever a click occurs.
+    /// </summary>
+    All
+  }
+}
diff --git a/trunk/NotifyIconWpf/Properties/AssemblyInfo.cs b/trunk/NotifyIconWpf/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..b1eb257
--- /dev/null
@@ -0,0 +1,57 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Windows;
+using System.Windows.Markup;
+
+// 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("NotifyIcon for WPF")]
+[assembly: AssemblyDescription("NotifyIcon Implementation for the WPF platform.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("hardcodet.net")]
+[assembly: AssemblyProduct("NotifyIcon WPF")]
+[assembly: AssemblyCopyright("Copyright © Philipp Sumi 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//provides simplified declaration
+[assembly: XmlnsDefinition("http://www.hardcodet.net/taskbar", "Hardcodet.Wpf.TaskbarNotification")]
+
+// 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)]
+
+//In order to begin building localizable applications, set 
+//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
+//inside a <PropertyGroup>.  For example, if you are using US english
+//in your source files, set the <UICulture> to en-US.  Then uncomment
+//the NeutralResourceLanguage attribute below.  Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+  //(used if a resource is not found in the page, 
+  // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+  //(used if a resource is not found in the page, 
+  // app, or any theme specific resource dictionaries)
+)]
+
+
+// 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 Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.4.0")]
+[assembly: AssemblyFileVersion("1.0.4.0")]
diff --git a/trunk/NotifyIconWpf/Properties/Resources.Designer.cs b/trunk/NotifyIconWpf/Properties/Resources.Designer.cs
new file mode 100644 (file)
index 0000000..3ccd02d
--- /dev/null
@@ -0,0 +1,70 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.235
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Hardcodet.Wpf.TaskbarNotification.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Hardcodet.Wpf.TaskbarNotification.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        internal static System.Drawing.Icon DefaultTrayIcon {
+            get {
+                object obj = ResourceManager.GetObject("DefaultTrayIcon", resourceCulture);
+                return ((System.Drawing.Icon)(obj));
+            }
+        }
+    }
+}
diff --git a/trunk/NotifyIconWpf/Properties/Resources.resx b/trunk/NotifyIconWpf/Properties/Resources.resx
new file mode 100644 (file)
index 0000000..4050202
--- /dev/null
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="DefaultTrayIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\defaulttrayicon.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/RoutedEventHelper.cs b/trunk/NotifyIconWpf/RoutedEventHelper.cs
new file mode 100644 (file)
index 0000000..3b9eaec
--- /dev/null
@@ -0,0 +1,81 @@
+using System;
+using System.Windows;
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  /// <summary>
+  /// Helper class used by routed events of the
+  /// <see cref="TaskbarIcon"/> class.
+  /// </summary>
+  internal static class RoutedEventHelper
+  {
+    #region RoutedEvent Helper Methods
+
+    /// <summary>
+    /// A static helper method to raise a routed event on a target UIElement or ContentElement.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    /// <param name="args">RoutedEventArgs to use when raising the event</param>
+    internal static void RaiseEvent(DependencyObject target, RoutedEventArgs args)
+    {
+      if (target is UIElement)
+      {
+        (target as UIElement).RaiseEvent(args);
+      }
+      else if (target is ContentElement)
+      {
+        (target as ContentElement).RaiseEvent(args);
+      }
+    }
+
+    /// <summary>
+    /// A static helper method that adds a handler for a routed event 
+    /// to a target UIElement or ContentElement.
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="routedEvent">Event that will be handled</param>
+    /// <param name="handler">Event handler to be added</param>
+    internal static void AddHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
+    {
+      UIElement uie = element as UIElement;
+      if (uie != null)
+      {
+        uie.AddHandler(routedEvent, handler);
+      }
+      else
+      {
+        ContentElement ce = element as ContentElement;
+        if (ce != null)
+        {
+          ce.AddHandler(routedEvent, handler);
+        }
+      }
+    }
+
+    /// <summary>
+    /// A static helper method that removes a handler for a routed event 
+    /// from a target UIElement or ContentElement.
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="routedEvent">Event that will no longer be handled</param>
+    /// <param name="handler">Event handler to be removed</param>
+    internal static void RemoveHandler(DependencyObject element, RoutedEvent routedEvent, Delegate handler)
+    {
+      UIElement uie = element as UIElement;
+      if (uie != null)
+      {
+        uie.RemoveHandler(routedEvent, handler);
+      }
+      else
+      {
+        ContentElement ce = element as ContentElement;
+        if (ce != null)
+        {
+          ce.RemoveHandler(routedEvent, handler);
+        }
+      }
+    }
+
+    #endregion
+  }
+}
diff --git a/trunk/NotifyIconWpf/TaskbarIcon.Declarations.cs b/trunk/NotifyIconWpf/TaskbarIcon.Declarations.cs
new file mode 100644 (file)
index 0000000..0ad227e
--- /dev/null
@@ -0,0 +1,1869 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Input;
+using System.Windows.Media;
+using Hardcodet.Wpf.TaskbarNotification.Interop;
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  /// <summary>
+  /// Contains declarations of WPF dependency properties
+  /// and events.
+  /// </summary>
+  partial class TaskbarIcon
+  {
+    /// <summary>
+    /// Category name that is set on designer properties.
+    /// </summary>
+    public const string CategoryName = "NotifyIcon";
+
+
+    //POPUP CONTROLS
+
+    #region TrayPopupResolved
+
+    /// <summary>
+    /// TrayPopupResolved Read-Only Dependency Property
+    /// </summary>
+    private static readonly DependencyPropertyKey TrayPopupResolvedPropertyKey
+        = DependencyProperty.RegisterReadOnly("TrayPopupResolved", typeof(Popup), typeof(TaskbarIcon),
+            new FrameworkPropertyMetadata(null));
+
+
+    /// <summary>
+    /// A read-only dependency property that returns the <see cref="Popup"/>
+    /// that is being displayed in the taskbar area based on a user action.
+    /// </summary>
+    public static readonly DependencyProperty TrayPopupResolvedProperty
+        = TrayPopupResolvedPropertyKey.DependencyProperty;
+
+    /// <summary>
+    /// Gets the TrayPopupResolved property. Returns
+    /// a <see cref="Popup"/> which is either the
+    /// <see cref="TrayPopup"/> control itself or a
+    /// <see cref="Popup"/> control that contains the
+    /// <see cref="TrayPopup"/>.
+    /// </summary>
+    [Category(CategoryName)]
+    public Popup TrayPopupResolved
+    {
+      get { return (Popup)GetValue(TrayPopupResolvedProperty); }
+    }
+
+    /// <summary>
+    /// Provides a secure method for setting the TrayPopupResolved property.  
+    /// This dependency property indicates ....
+    /// </summary>
+    /// <param name="value">The new value for the property.</param>
+    protected void SetTrayPopupResolved(Popup value)
+    {
+      SetValue(TrayPopupResolvedPropertyKey, value);
+    }
+
+    #endregion
+
+    #region TrayToolTipResolved
+
+    /// <summary>
+    /// TrayToolTipResolved Read-Only Dependency Property
+    /// </summary>
+    private static readonly DependencyPropertyKey TrayToolTipResolvedPropertyKey
+        = DependencyProperty.RegisterReadOnly("TrayToolTipResolved", typeof(ToolTip), typeof(TaskbarIcon),
+            new FrameworkPropertyMetadata(null  ));
+
+
+    /// <summary>
+    /// A read-only dependency property that returns the <see cref="ToolTip"/>
+    /// that is being displayed.
+    /// </summary>
+    public static readonly DependencyProperty TrayToolTipResolvedProperty
+        = TrayToolTipResolvedPropertyKey.DependencyProperty;
+
+    /// <summary>
+    /// Gets the TrayToolTipResolved property. Returns 
+    /// a <see cref="ToolTip"/> control that was created
+    /// in order to display either <see cref="TrayToolTip"/>
+    /// or <see cref="ToolTipText"/>.
+    /// </summary>
+    [Category(CategoryName)]
+    [Browsable(true)]
+    [Bindable(true)] 
+    public ToolTip TrayToolTipResolved
+    {
+      get { return (ToolTip)GetValue(TrayToolTipResolvedProperty); }
+    }
+
+    /// <summary>
+    /// Provides a secure method for setting the <see cref="TrayToolTipResolved"/>
+    /// property.  
+    /// </summary>
+    /// <param name="value">The new value for the property.</param>
+    protected void SetTrayToolTipResolved(ToolTip value)
+    {
+      SetValue(TrayToolTipResolvedPropertyKey, value);
+    }
+
+    #endregion
+
+    #region CustomBalloon
+
+    /// <summary>
+    /// CustomBalloon Read-Only Dependency Property
+    /// </summary>
+    private static readonly DependencyPropertyKey CustomBalloonPropertyKey
+        = DependencyProperty.RegisterReadOnly("CustomBalloon", typeof(Popup), typeof(TaskbarIcon),
+            new FrameworkPropertyMetadata(null));
+
+    public static readonly DependencyProperty CustomBalloonProperty
+        = CustomBalloonPropertyKey.DependencyProperty;
+
+    /// <summary>
+    /// A custom popup that is being displayed in the tray area in order
+    /// to display messages to the user.
+    /// </summary>
+    public Popup CustomBalloon
+    {
+      get { return (Popup)GetValue(CustomBalloonProperty); }
+    }
+
+    /// <summary>
+    /// Provides a secure method for setting the <see cref="CustomBalloon"/> property.  
+    /// </summary>
+    /// <param name="value">The new value for the property.</param>
+    protected void SetCustomBalloon(Popup value)
+    {
+      SetValue(CustomBalloonPropertyKey, value);
+    }
+
+    #endregion
+
+
+
+    //DEPENDENCY PROPERTIES
+
+    #region Icon property / IconSource dependency property
+
+    private Icon icon;
+
+    /// <summary>
+    /// Gets or sets the icon to be displayed. This is not a
+    /// dependency property - if you want to assign the property
+    /// through XAML, please use the <see cref="IconSource"/>
+    /// dependency property.
+    /// </summary>
+    [Browsable(false)]
+    public Icon Icon
+    {
+      get { return icon; }
+      set
+      {
+        icon = value;
+        iconData.IconHandle = value == null ? IntPtr.Zero : icon.Handle;
+
+        Util.WriteIconData(ref iconData, NotifyCommand.Modify, IconDataMembers.Icon);
+      }
+    }
+
+
+    /// <summary>
+    /// Resolves an image source and updates the <see cref="Icon" /> property accordingly.
+    /// </summary>
+    public static readonly DependencyProperty IconSourceProperty =
+        DependencyProperty.Register("IconSource",
+                                    typeof(ImageSource),
+                                    typeof(TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null, IconSourcePropertyChanged));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="IconSourceProperty"/>
+    /// dependency property:<br/>
+    /// Resolves an image source and updates the <see cref="Icon" /> property accordingly.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Sets the displayed taskbar icon.")]
+    public ImageSource IconSource
+    {
+      get { return (ImageSource)GetValue(IconSourceProperty); }
+      set { SetValue(IconSourceProperty, value); }
+    }
+
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="IconSourceProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnIconSourcePropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void IconSourcePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon)d;
+      owner.OnIconSourcePropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="IconSourceProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="IconSource"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnIconSourcePropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      ImageSource newValue = (ImageSource)e.NewValue;
+
+      //resolving the ImageSource at design time is unlikely to work
+      if (!Util.IsDesignMode) Icon = newValue.ToIcon();
+    }
+
+    #endregion
+
+    #region ToolTipText dependency property
+
+    /// <summary>
+    /// A tooltip text that is being displayed if no custom <see cref="ToolTip"/>
+    /// was set or if custom tooltips are not supported.
+    /// </summary>
+    public static readonly DependencyProperty ToolTipTextProperty =
+        DependencyProperty.Register("ToolTipText",
+                                    typeof (string),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(String.Empty, ToolTipTextPropertyChanged));
+
+
+    /// <summary>
+    /// A property wrapper for the <see cref="ToolTipTextProperty"/>
+    /// dependency property:<br/>
+    /// A tooltip text that is being displayed if no custom <see cref="ToolTip"/>
+    /// was set or if custom tooltips are not supported.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Alternative to a fully blown ToolTip, which is only displayed on Vista and above.")]
+    public string ToolTipText
+    {
+      get { return (string) GetValue(ToolTipTextProperty); }
+      set { SetValue(ToolTipTextProperty, value); }
+    }
+
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="ToolTipTextProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnToolTipTextPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void ToolTipTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon) d;
+      owner.OnToolTipTextPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="ToolTipTextProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="ToolTipText"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnToolTipTextPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      //only recreate tooltip if we're not using a custom control
+      if (TrayToolTipResolved == null || TrayToolTipResolved.Content is string)
+      {
+        CreateCustomToolTip();
+      }
+      
+      WriteToolTipSettings();
+    }
+
+    #endregion
+
+    #region TrayToolTip dependency property
+
+    /// <summary>
+    /// A custom UI element that is displayed as a tooltip if the user hovers over the taskbar icon.
+    /// Works only with Vista and above. Accordingly, you should make sure that
+    /// the <see cref="ToolTipText"/> property is set as well.
+    /// </summary>
+    public static readonly DependencyProperty TrayToolTipProperty =
+        DependencyProperty.Register("TrayToolTip",
+                                    typeof (UIElement),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null, TrayToolTipPropertyChanged));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="TrayToolTipProperty"/>
+    /// dependency property:<br/>
+    /// A custom UI element that is displayed as a tooltip if the user hovers over the taskbar icon.
+    /// Works only with Vista and above. Accordingly, you should make sure that
+    /// the <see cref="ToolTipText"/> property is set as well.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Custom UI element that is displayed as a tooltip. Only on Vista and above")]
+    public UIElement TrayToolTip
+    {
+      get { return (UIElement) GetValue(TrayToolTipProperty); }
+      set { SetValue(TrayToolTipProperty, value); }
+    }
+
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="TrayToolTipProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnTrayToolTipPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void TrayToolTipPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon) d;
+      owner.OnTrayToolTipPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="TrayToolTipProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="TrayToolTip"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnTrayToolTipPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      //recreate tooltip control
+      CreateCustomToolTip();
+
+      if (e.OldValue != null)
+      {
+        //remove the taskbar icon reference from the previously used element
+        SetParentTaskbarIcon((DependencyObject) e.OldValue, null);
+      }
+
+
+      if (e.NewValue != null)
+      {
+        //set this taskbar icon as a reference to the new tooltip element
+        SetParentTaskbarIcon((DependencyObject) e.NewValue, this);        
+      }
+
+
+      //update tooltip settings - needed to make sure a string is set, even
+      //if the ToolTipText property is not set. Otherwise, the event that
+      //triggers tooltip display is never fired.
+      WriteToolTipSettings();
+    }
+
+    #endregion
+
+    #region TrayPopup dependency property
+
+    /// <summary>
+    /// A control that is displayed as a popup when the taskbar icon is clicked.
+    /// </summary>
+    public static readonly DependencyProperty TrayPopupProperty =
+        DependencyProperty.Register("TrayPopup",
+                                    typeof(UIElement),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null, TrayPopupPropertyChanged));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="TrayPopupProperty"/>
+    /// dependency property:<br/>
+    /// A control that is displayed as a popup when the taskbar icon is clicked.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Displayed as a Popup if the user clicks on the taskbar icon.")]
+    public UIElement TrayPopup
+    {
+      get { return (UIElement)GetValue(TrayPopupProperty); }
+      set { SetValue(TrayPopupProperty, value); }
+    }
+
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="TrayPopupProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnTrayPopupPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void TrayPopupPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon) d;
+      owner.OnTrayPopupPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="TrayPopupProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="TrayPopup"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnTrayPopupPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      if (e.OldValue != null)
+      {
+        //remove the taskbar icon reference from the previously used element
+        SetParentTaskbarIcon((DependencyObject)e.OldValue, null);
+      }
+
+
+      if (e.NewValue != null)
+      {
+        //set this taskbar icon as a reference to the new tooltip element
+        SetParentTaskbarIcon((DependencyObject)e.NewValue, this);
+      }
+
+      //create a pop
+      CreatePopup();
+    }
+
+    #endregion
+
+    
+    #region MenuActivation dependency property
+
+    /// <summary>
+    /// Defines what mouse events display the context menu.
+    /// Defaults to <see cref="PopupActivationMode.RightClick"/>.
+    /// </summary>
+    public static readonly DependencyProperty MenuActivationProperty =
+        DependencyProperty.Register("MenuActivation",
+                                    typeof (PopupActivationMode),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(PopupActivationMode.RightClick));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="MenuActivationProperty"/>
+    /// dependency property:<br/>
+    /// Defines what mouse events display the context menu.
+    /// Defaults to <see cref="PopupActivationMode.RightClick"/>.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Defines what mouse events display the context menu.")]
+    public PopupActivationMode MenuActivation
+    {
+      get { return (PopupActivationMode) GetValue(MenuActivationProperty); }
+      set { SetValue(MenuActivationProperty, value); }
+    }
+
+    #endregion
+    
+    #region PopupActivation dependency property
+
+    /// <summary>
+    /// Defines what mouse events trigger the <see cref="TrayPopup" />.
+    /// Default is <see cref="PopupActivationMode.LeftClick" />.
+    /// </summary>
+    public static readonly DependencyProperty PopupActivationProperty =
+        DependencyProperty.Register("PopupActivation",
+                                    typeof (PopupActivationMode),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(PopupActivationMode.LeftClick));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="PopupActivationProperty"/>
+    /// dependency property:<br/>
+    /// Defines what mouse events trigger the <see cref="TrayPopup" />.
+    /// Default is <see cref="PopupActivationMode.LeftClick" />.
+    /// </summary>
+    [Category(CategoryName)]
+    [Description("Defines what mouse events display the TaskbarIconPopup.")]
+    public PopupActivationMode PopupActivation
+    {
+      get { return (PopupActivationMode) GetValue(PopupActivationProperty); }
+      set { SetValue(PopupActivationProperty, value); }
+    }
+
+    #endregion
+
+
+    #region Visibility dependency property override
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="UIElement.VisibilityProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnVisibilityPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void VisibilityPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon) d;
+      owner.OnVisibilityPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="UIElement.VisibilityProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="Visibility"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnVisibilityPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      Visibility newValue = (Visibility) e.NewValue;
+
+      //update
+      if (newValue == Visibility.Visible)
+      {
+        CreateTaskbarIcon();
+      }
+      else
+      {
+        RemoveTaskbarIcon();
+      }
+    }
+
+    #endregion
+
+    #region DataContext dependency property override / target update
+
+    /// <summary>
+    /// Updates the <see cref="FrameworkElement.DataContextProperty"/> of a given
+    /// <see cref="FrameworkElement"/>. This method only updates target elements
+    /// that do not already have a data context of their own, and either assigns
+    /// the <see cref="FrameworkElement.DataContext"/> of the NotifyIcon, or the
+    /// NotifyIcon itself, if no data context was assigned at all.
+    /// </summary>
+    private void UpdateDataContext(FrameworkElement target, object oldDataContextValue, object newDataContextValue)
+    {
+      //if there is no target or it's data context is determined through a binding
+      //of its own, keep it
+      if (target == null || target.IsDataContextDataBound()) return;
+
+      //if the target's data context is the NotifyIcon's old DataContext or the NotifyIcon itself,
+      //update it
+      if (ReferenceEquals(this, target.DataContext) || Equals(oldDataContextValue, target.DataContext))
+      {
+        //assign own data context, if available. If there is no data
+        //context at all, assign NotifyIcon itself.
+        target.DataContext = newDataContextValue ?? this;
+      }
+    }
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="FrameworkElement.DataContextProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnDataContextPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void DataContextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon) d;
+      owner.OnDataContextPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Handles changes of the <see cref="FrameworkElement.DataContextProperty"/> dependency property. As
+    /// WPF internally uses the dependency property system and bypasses the
+    /// <see cref="FrameworkElement.DataContext"/> property wrapper, updates of the property's value
+    /// should be handled here.
+    /// </summary
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnDataContextPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      object newValue = e.NewValue;
+      object oldValue = e.OldValue;
+
+      //replace custom data context for ToolTips, Popup, and
+      //ContextMenu
+      UpdateDataContext(TrayPopupResolved, oldValue, newValue);
+      UpdateDataContext(TrayToolTipResolved, oldValue, newValue);
+      UpdateDataContext(ContextMenu, oldValue, newValue);
+    }
+
+    #endregion
+
+    #region ContextMenu dependency property override
+
+    /// <summary>
+    /// A static callback listener which is being invoked if the
+    /// <see cref="FrameworkElement.ContextMenuProperty"/> dependency property has
+    /// been changed. Invokes the <see cref="OnContextMenuPropertyChanged"/>
+    /// instance method of the changed instance.
+    /// </summary>
+    /// <param name="d">The currently processed owner of the property.</param>
+    /// <param name="e">Provides information about the updated property.</param>
+    private static void ContextMenuPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+    {
+      TaskbarIcon owner = (TaskbarIcon)d;
+      owner.OnContextMenuPropertyChanged(e);
+    }
+
+
+    /// <summary>
+    /// Releases the old and updates the new <see cref="ContextMenu"/> property
+    /// in order to reflect both the NotifyIcon's <see cref="FrameworkElement.DataContext"/>
+    /// property and have the <see cref="ParentTaskbarIconProperty"/> assigned.
+    /// </summary>
+    /// <param name="e">Provides information about the updated property.</param>
+    private void OnContextMenuPropertyChanged(DependencyPropertyChangedEventArgs e)
+    {
+      if (e.OldValue != null)
+      {
+        //remove the taskbar icon reference from the previously used element
+        SetParentTaskbarIcon((DependencyObject)e.OldValue, null);
+      }
+
+      if (e.NewValue != null)
+      {
+        //set this taskbar icon as a reference to the new tooltip element
+        SetParentTaskbarIcon((DependencyObject)e.NewValue, this);
+      }
+
+      UpdateDataContext((ContextMenu) e.NewValue, null, DataContext);
+    }
+
+    #endregion
+
+
+
+    #region DoubleClickCommand dependency property
+
+    /// <summary>
+    /// Associates a command that is being executed if the tray icon is being
+    /// double clicked.
+    /// </summary>
+    public static readonly DependencyProperty DoubleClickCommandProperty =
+        DependencyProperty.Register("DoubleClickCommand",
+                                    typeof (ICommand),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="DoubleClickCommandProperty"/>
+    /// dependency property:<br/>
+    /// Associates a command that is being executed if the tray icon is being
+    /// double clicked.
+    /// </summary>
+    public ICommand DoubleClickCommand
+    {
+      get { return (ICommand) GetValue(DoubleClickCommandProperty); }
+      set { SetValue(DoubleClickCommandProperty, value); }
+    }
+
+    #endregion
+
+    #region DoubleClickCommandParameter dependency property
+
+    /// <summary>
+    /// Command parameter for the <see cref="DoubleClickCommand"/>.
+    /// </summary>
+    public static readonly DependencyProperty DoubleClickCommandParameterProperty =
+        DependencyProperty.Register("DoubleClickCommandParameter",
+                                    typeof (object),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="DoubleClickCommandParameterProperty"/>
+    /// dependency property:<br/>
+    /// Command parameter for the <see cref="DoubleClickCommand"/>.
+    /// </summary>
+    public object DoubleClickCommandParameter
+    {
+      get { return GetValue(DoubleClickCommandParameterProperty); }
+      set { SetValue(DoubleClickCommandParameterProperty, value); }
+    }
+
+    #endregion
+
+    #region DoubleClickCommandTarget dependency property
+
+    /// <summary>
+    /// The target of the command that is fired if the notify icon is double clicked.
+    /// </summary>
+    public static readonly DependencyProperty DoubleClickCommandTargetProperty =
+        DependencyProperty.Register("DoubleClickCommandTarget",
+                                    typeof (IInputElement),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="DoubleClickCommandTargetProperty"/>
+    /// dependency property:<br/>
+    /// The target of the command that is fired if the notify icon is double clicked.
+    /// </summary>
+    public IInputElement DoubleClickCommandTarget
+    {
+      get { return (IInputElement) GetValue(DoubleClickCommandTargetProperty); }
+      set { SetValue(DoubleClickCommandTargetProperty, value); }
+    }
+
+    #endregion
+
+
+
+    #region LeftClickCommand dependency property
+
+    /// <summary>
+    /// Associates a command that is being executed if the tray icon is being
+    /// double clicked.
+    /// </summary>
+    public static readonly DependencyProperty LeftClickCommandProperty =
+        DependencyProperty.Register("LeftClickCommand",
+                                    typeof (ICommand),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="LeftClickCommandProperty"/>
+    /// dependency property:<br/>
+    /// Associates a command that is being executed if the tray icon is being
+    /// double clicked.
+    /// </summary>
+    public ICommand LeftClickCommand
+    {
+      get { return (ICommand) GetValue(LeftClickCommandProperty); }
+      set { SetValue(LeftClickCommandProperty, value); }
+    }
+
+    #endregion
+
+    #region LeftClickCommandParameter dependency property
+
+    /// <summary>
+    /// Command parameter for the <see cref="LeftClickCommand"/>.
+    /// </summary>
+    public static readonly DependencyProperty LeftClickCommandParameterProperty =
+        DependencyProperty.Register("LeftClickCommandParameter",
+                                    typeof (object),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="LeftClickCommandParameterProperty"/>
+    /// dependency property:<br/>
+    /// Command parameter for the <see cref="LeftClickCommand"/>.
+    /// </summary>
+    public object LeftClickCommandParameter
+    {
+      get { return GetValue(LeftClickCommandParameterProperty); }
+      set { SetValue(LeftClickCommandParameterProperty, value); }
+    }
+
+    #endregion
+
+    #region LeftClickCommandTarget dependency property
+
+    /// <summary>
+    /// The target of the command that is fired if the notify icon is clicked.
+    /// </summary>
+    public static readonly DependencyProperty LeftClickCommandTargetProperty =
+        DependencyProperty.Register("LeftClickCommandTarget",
+                                    typeof (IInputElement),
+                                    typeof (TaskbarIcon),
+                                    new FrameworkPropertyMetadata(null));
+
+    /// <summary>
+    /// A property wrapper for the <see cref="LeftClickCommandTargetProperty"/>
+    /// dependency property:<br/>
+    /// The target of the command that is fired if the notify icon is clicked.
+    /// </summary>
+    public IInputElement LeftClickCommandTarget
+    {
+      get { return (IInputElement) GetValue(LeftClickCommandTargetProperty); }
+      set { SetValue(LeftClickCommandTargetProperty, value); }
+    }
+
+    #endregion
+
+
+
+    //EVENTS
+
+    #region TrayLeftMouseDown
+
+    /// <summary>
+    /// TrayLeftMouseDown Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayLeftMouseDownEvent = EventManager.RegisterRoutedEvent("TrayLeftMouseDown",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user presses the left mouse button.
+    /// </summary>
+    [Category(CategoryName)]
+    public event RoutedEventHandler TrayLeftMouseDown
+    {
+      add { AddHandler(TrayLeftMouseDownEvent, value); }
+      remove { RemoveHandler(TrayLeftMouseDownEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayLeftMouseDown event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayLeftMouseDownEvent()
+    {
+      RoutedEventArgs args = RaiseTrayLeftMouseDownEvent(this);
+      return args;
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayLeftMouseDown event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayLeftMouseDownEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayLeftMouseDownEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayRightMouseDown
+
+    /// <summary>
+    /// TrayRightMouseDown Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayRightMouseDownEvent = EventManager.RegisterRoutedEvent("TrayRightMouseDown",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the presses the right mouse button.
+    /// </summary>
+    public event RoutedEventHandler TrayRightMouseDown
+    {
+      add { AddHandler(TrayRightMouseDownEvent, value); }
+      remove { RemoveHandler(TrayRightMouseDownEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayRightMouseDown event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayRightMouseDownEvent()
+    {
+      return RaiseTrayRightMouseDownEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayRightMouseDown event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayRightMouseDownEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayRightMouseDownEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayMiddleMouseDown
+
+    /// <summary>
+    /// TrayMiddleMouseDown Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayMiddleMouseDownEvent = EventManager.RegisterRoutedEvent("TrayMiddleMouseDown",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user presses the middle mouse button.
+    /// </summary>
+    public event RoutedEventHandler TrayMiddleMouseDown
+    {
+      add { AddHandler(TrayMiddleMouseDownEvent, value); }
+      remove { RemoveHandler(TrayMiddleMouseDownEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayMiddleMouseDown event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayMiddleMouseDownEvent()
+    {
+      return RaiseTrayMiddleMouseDownEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayMiddleMouseDown event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayMiddleMouseDownEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayMiddleMouseDownEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+    
+    #region TrayLeftMouseUp
+
+    /// <summary>
+    /// TrayLeftMouseUp Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayLeftMouseUpEvent = EventManager.RegisterRoutedEvent("TrayLeftMouseUp",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user releases the left mouse button.
+    /// </summary>
+    public event RoutedEventHandler TrayLeftMouseUp
+    {
+      add { AddHandler(TrayLeftMouseUpEvent, value); }
+      remove { RemoveHandler(TrayLeftMouseUpEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayLeftMouseUp event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayLeftMouseUpEvent()
+    {
+      return RaiseTrayLeftMouseUpEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayLeftMouseUp event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayLeftMouseUpEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayLeftMouseUpEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayRightMouseUp
+
+    /// <summary>
+    /// TrayRightMouseUp Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayRightMouseUpEvent = EventManager.RegisterRoutedEvent("TrayRightMouseUp",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user releases the right mouse button.
+    /// </summary>
+    public event RoutedEventHandler TrayRightMouseUp
+    {
+      add { AddHandler(TrayRightMouseUpEvent, value); }
+      remove { RemoveHandler(TrayRightMouseUpEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayRightMouseUp event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayRightMouseUpEvent()
+    {
+      return RaiseTrayRightMouseUpEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayRightMouseUp event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayRightMouseUpEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayRightMouseUpEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayMiddleMouseUp
+
+    /// <summary>
+    /// TrayMiddleMouseUp Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayMiddleMouseUpEvent = EventManager.RegisterRoutedEvent("TrayMiddleMouseUp",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user releases the middle mouse button.
+    /// </summary>
+    public event RoutedEventHandler TrayMiddleMouseUp
+    {
+      add { AddHandler(TrayMiddleMouseUpEvent, value); }
+      remove { RemoveHandler(TrayMiddleMouseUpEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayMiddleMouseUp event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayMiddleMouseUpEvent()
+    {
+      return RaiseTrayMiddleMouseUpEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayMiddleMouseUp event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayMiddleMouseUpEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayMiddleMouseUpEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+
+    #region TrayMouseDoubleClick
+
+    /// <summary>
+    /// TrayMouseDoubleClick Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayMouseDoubleClickEvent = EventManager.RegisterRoutedEvent("TrayMouseDoubleClick",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user double-clicks the taskbar icon.
+    /// </summary>
+    public event RoutedEventHandler TrayMouseDoubleClick
+    {
+      add { AddHandler(TrayMouseDoubleClickEvent, value); }
+      remove { RemoveHandler(TrayMouseDoubleClickEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayMouseDoubleClick event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayMouseDoubleClickEvent()
+    {
+      RoutedEventArgs args = RaiseTrayMouseDoubleClickEvent(this);
+      DoubleClickCommand.ExecuteIfEnabled(DoubleClickCommandParameter, DoubleClickCommandTarget ?? this);
+      return args;
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayMouseDoubleClick event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayMouseDoubleClickEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayMouseDoubleClickEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+    #region TrayMouseMove
+
+    /// <summary>
+    /// TrayMouseMove Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayMouseMoveEvent = EventManager.RegisterRoutedEvent("TrayMouseMove",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user moves the mouse over the taskbar icon.
+    /// </summary>
+    public event RoutedEventHandler TrayMouseMove
+    {
+      add { AddHandler(TrayMouseMoveEvent, value); }
+      remove { RemoveHandler(TrayMouseMoveEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayMouseMove event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayMouseMoveEvent()
+    {
+      return RaiseTrayMouseMoveEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayMouseMove event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayMouseMoveEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayMouseMoveEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+
+    #region TrayBalloonTipShown
+
+    /// <summary>
+    /// TrayBalloonTipShown Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayBalloonTipShownEvent = EventManager.RegisterRoutedEvent("TrayBalloonTipShown",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when a balloon ToolTip is displayed.
+    /// </summary>
+    public event RoutedEventHandler TrayBalloonTipShown
+    {
+      add { AddHandler(TrayBalloonTipShownEvent, value); }
+      remove { RemoveHandler(TrayBalloonTipShownEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayBalloonTipShown event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayBalloonTipShownEvent()
+    {
+      return RaiseTrayBalloonTipShownEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayBalloonTipShown event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayBalloonTipShownEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayBalloonTipShownEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayBalloonTipClosed
+
+    /// <summary>
+    /// TrayBalloonTipClosed Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayBalloonTipClosedEvent = EventManager.RegisterRoutedEvent("TrayBalloonTipClosed",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when a balloon ToolTip was closed.
+    /// </summary>
+    public event RoutedEventHandler TrayBalloonTipClosed
+    {
+      add { AddHandler(TrayBalloonTipClosedEvent, value); }
+      remove { RemoveHandler(TrayBalloonTipClosedEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayBalloonTipClosed event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayBalloonTipClosedEvent()
+    {
+      return RaiseTrayBalloonTipClosedEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayBalloonTipClosed event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayBalloonTipClosedEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayBalloonTipClosedEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayBalloonTipClicked
+
+    /// <summary>
+    /// TrayBalloonTipClicked Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayBalloonTipClickedEvent = EventManager.RegisterRoutedEvent("TrayBalloonTipClicked",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Occurs when the user clicks on a balloon ToolTip.
+    /// </summary>
+    public event RoutedEventHandler TrayBalloonTipClicked
+    {
+      add { AddHandler(TrayBalloonTipClickedEvent, value); }
+      remove { RemoveHandler(TrayBalloonTipClickedEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayBalloonTipClicked event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayBalloonTipClickedEvent()
+    {
+      return RaiseTrayBalloonTipClickedEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayBalloonTipClicked event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayBalloonTipClickedEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayBalloonTipClickedEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+
+    #region TrayContextMenuOpen (and PreviewTrayContextMenuOpen)
+
+    /// <summary>
+    /// TrayContextMenuOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayContextMenuOpenEvent = EventManager.RegisterRoutedEvent("TrayContextMenuOpen",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Bubbled event that occurs when the context menu of the taskbar icon is being displayed.
+    /// </summary>
+    public event RoutedEventHandler TrayContextMenuOpen
+    {
+      add { AddHandler(TrayContextMenuOpenEvent, value); }
+      remove { RemoveHandler(TrayContextMenuOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayContextMenuOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayContextMenuOpenEvent()
+    {
+      return RaiseTrayContextMenuOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayContextMenuOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayContextMenuOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayContextMenuOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    /// <summary>
+    /// PreviewTrayContextMenuOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent PreviewTrayContextMenuOpenEvent = EventManager.RegisterRoutedEvent("PreviewTrayContextMenuOpen",
+        RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Tunneled event that occurs when the context menu of the taskbar icon is being displayed.
+    /// </summary>
+    public event RoutedEventHandler PreviewTrayContextMenuOpen
+    {
+      add { AddHandler(PreviewTrayContextMenuOpenEvent, value); }
+      remove { RemoveHandler(PreviewTrayContextMenuOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the PreviewTrayContextMenuOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaisePreviewTrayContextMenuOpenEvent()
+    {
+      return RaisePreviewTrayContextMenuOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the PreviewTrayContextMenuOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaisePreviewTrayContextMenuOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = PreviewTrayContextMenuOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayPopupOpen (and PreviewTrayPopupOpen)
+
+    /// <summary>
+    /// TrayPopupOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayPopupOpenEvent = EventManager.RegisterRoutedEvent("TrayPopupOpen",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Bubbled event that occurs when the custom popup is being opened.
+    /// </summary>
+    public event RoutedEventHandler TrayPopupOpen
+    {
+      add { AddHandler(TrayPopupOpenEvent, value); }
+      remove { RemoveHandler(TrayPopupOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayPopupOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayPopupOpenEvent()
+    {
+      return RaiseTrayPopupOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayPopupOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayPopupOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayPopupOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    /// <summary>
+    /// PreviewTrayPopupOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent PreviewTrayPopupOpenEvent = EventManager.RegisterRoutedEvent("PreviewTrayPopupOpen",
+        RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Tunneled event that occurs when the custom popup is being opened.
+    /// </summary>
+    public event RoutedEventHandler PreviewTrayPopupOpen
+    {
+      add { AddHandler(PreviewTrayPopupOpenEvent, value); }
+      remove { RemoveHandler(PreviewTrayPopupOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the PreviewTrayPopupOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaisePreviewTrayPopupOpenEvent()
+    {
+      return RaisePreviewTrayPopupOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the PreviewTrayPopupOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaisePreviewTrayPopupOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = PreviewTrayPopupOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+
+    #region TrayToolTipOpen (and PreviewTrayToolTipOpen)
+
+    /// <summary>
+    /// TrayToolTipOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayToolTipOpenEvent = EventManager.RegisterRoutedEvent("TrayToolTipOpen",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Bubbled event that occurs when the custom ToolTip is being displayed.
+    /// </summary>
+    public event RoutedEventHandler TrayToolTipOpen
+    {
+      add { AddHandler(TrayToolTipOpenEvent, value); }
+      remove { RemoveHandler(TrayToolTipOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayToolTipOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayToolTipOpenEvent()
+    {
+      return RaiseTrayToolTipOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayToolTipOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayToolTipOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayToolTipOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    /// <summary>
+    /// PreviewTrayToolTipOpen Routed Event
+    /// </summary>
+    public static readonly RoutedEvent PreviewTrayToolTipOpenEvent = EventManager.RegisterRoutedEvent("PreviewTrayToolTipOpen",
+        RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Tunneled event that occurs when the custom ToolTip is being displayed.
+    /// </summary>
+    public event RoutedEventHandler PreviewTrayToolTipOpen
+    {
+      add { AddHandler(PreviewTrayToolTipOpenEvent, value); }
+      remove { RemoveHandler(PreviewTrayToolTipOpenEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the PreviewTrayToolTipOpen event.
+    /// </summary>
+    protected RoutedEventArgs RaisePreviewTrayToolTipOpenEvent()
+    {
+      return RaisePreviewTrayToolTipOpenEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the PreviewTrayToolTipOpen event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaisePreviewTrayToolTipOpenEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = PreviewTrayToolTipOpenEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region TrayToolTipClose (and PreviewTrayToolTipClose)
+
+    /// <summary>
+    /// TrayToolTipClose Routed Event
+    /// </summary>
+    public static readonly RoutedEvent TrayToolTipCloseEvent = EventManager.RegisterRoutedEvent("TrayToolTipClose",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Bubbled event that occurs when a custom tooltip is being closed.
+    /// </summary>
+    public event RoutedEventHandler TrayToolTipClose
+    {
+      add { AddHandler(TrayToolTipCloseEvent, value); }
+      remove { RemoveHandler(TrayToolTipCloseEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the TrayToolTipClose event.
+    /// </summary>
+    protected RoutedEventArgs RaiseTrayToolTipCloseEvent()
+    {
+      return RaiseTrayToolTipCloseEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the TrayToolTipClose event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseTrayToolTipCloseEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = TrayToolTipCloseEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    /// <summary>
+    /// PreviewTrayToolTipClose Routed Event
+    /// </summary>
+    public static readonly RoutedEvent PreviewTrayToolTipCloseEvent = EventManager.RegisterRoutedEvent("PreviewTrayToolTipClose",
+        RoutingStrategy.Tunnel, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Tunneled event that occurs when a custom tooltip is being closed.
+    /// </summary>
+    public event RoutedEventHandler PreviewTrayToolTipClose
+    {
+      add { AddHandler(PreviewTrayToolTipCloseEvent, value); }
+      remove { RemoveHandler(PreviewTrayToolTipCloseEvent, value); }
+    }
+
+    /// <summary>
+    /// A helper method to raise the PreviewTrayToolTipClose event.
+    /// </summary>
+    protected RoutedEventArgs RaisePreviewTrayToolTipCloseEvent()
+    {
+      return RaisePreviewTrayToolTipCloseEvent(this);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the PreviewTrayToolTipClose event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaisePreviewTrayToolTipCloseEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = PreviewTrayToolTipCloseEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+
+    //ATTACHED EVENTS
+
+    #region PopupOpened
+
+    /// <summary>
+    /// PopupOpened Attached Routed Event
+    /// </summary>
+    public static readonly RoutedEvent PopupOpenedEvent = EventManager.RegisterRoutedEvent("PopupOpened",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Adds a handler for the PopupOpened attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be added</param>
+    public static void AddPopupOpenedHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.AddHandler(element, PopupOpenedEvent, handler);
+    }
+
+    /// <summary>
+    /// Removes a handler for the PopupOpened attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be removed</param>
+    public static void RemovePopupOpenedHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.RemoveHandler(element, PopupOpenedEvent, handler);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the PopupOpened event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaisePopupOpenedEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = PopupOpenedEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+          
+    #region ToolTipOpened
+
+    /// <summary>
+    /// ToolTipOpened Attached Routed Event
+    /// </summary>
+    public static readonly RoutedEvent ToolTipOpenedEvent = EventManager.RegisterRoutedEvent("ToolTipOpened",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Adds a handler for the ToolTipOpened attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be added</param>
+    public static void AddToolTipOpenedHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.AddHandler(element, ToolTipOpenedEvent, handler);
+    }
+
+    /// <summary>
+    /// Removes a handler for the ToolTipOpened attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be removed</param>
+    public static void RemoveToolTipOpenedHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.RemoveHandler(element, ToolTipOpenedEvent, handler);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the ToolTipOpened event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseToolTipOpenedEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = ToolTipOpenedEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region ToolTipClose
+
+    /// <summary>
+    /// ToolTipClose Attached Routed Event
+    /// </summary>
+    public static readonly RoutedEvent ToolTipCloseEvent = EventManager.RegisterRoutedEvent("ToolTipClose",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Adds a handler for the ToolTipClose attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be added</param>
+    public static void AddToolTipCloseHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.AddHandler(element, ToolTipCloseEvent, handler);
+    }
+
+    /// <summary>
+    /// Removes a handler for the ToolTipClose attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be removed</param>
+    public static void RemoveToolTipCloseHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.RemoveHandler(element, ToolTipCloseEvent, handler);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the ToolTipClose event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    internal static RoutedEventArgs RaiseToolTipCloseEvent(DependencyObject target)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs();
+      args.RoutedEvent = ToolTipCloseEvent;
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region BalloonShowing
+
+    /// <summary>
+    /// BalloonShowing Attached Routed Event
+    /// </summary>
+    public static readonly RoutedEvent BalloonShowingEvent = EventManager.RegisterRoutedEvent("BalloonShowing",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Adds a handler for the BalloonShowing attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be added</param>
+    public static void AddBalloonShowingHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.AddHandler(element, BalloonShowingEvent, handler);
+    }
+
+    /// <summary>
+    /// Removes a handler for the BalloonShowing attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be removed</param>
+    public static void RemoveBalloonShowingHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.RemoveHandler(element, BalloonShowingEvent, handler);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the BalloonShowing event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    /// <param name="source">The <see cref="TaskbarIcon"/> instance that manages the balloon.</param>
+    internal static RoutedEventArgs RaiseBalloonShowingEvent(DependencyObject target, TaskbarIcon source)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs(BalloonShowingEvent, source);
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+
+    #region BalloonClosing
+
+    /// <summary>
+    /// BalloonClosing Attached Routed Event
+    /// </summary>
+    public static readonly RoutedEvent BalloonClosingEvent = EventManager.RegisterRoutedEvent("BalloonClosing",
+        RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TaskbarIcon));
+
+    /// <summary>
+    /// Adds a handler for the BalloonClosing attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be added</param>
+    public static void AddBalloonClosingHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.AddHandler(element, BalloonClosingEvent, handler);
+    }
+
+    /// <summary>
+    /// Removes a handler for the BalloonClosing attached event
+    /// </summary>
+    /// <param name="element">UIElement or ContentElement that listens to the event</param>
+    /// <param name="handler">Event handler to be removed</param>
+    public static void RemoveBalloonClosingHandler(DependencyObject element, RoutedEventHandler handler)
+    {
+      RoutedEventHelper.RemoveHandler(element, BalloonClosingEvent, handler);
+    }
+
+    /// <summary>
+    /// A static helper method to raise the BalloonClosing event on a target element.
+    /// </summary>
+    /// <param name="target">UIElement or ContentElement on which to raise the event</param>
+    /// <param name="source">The <see cref="TaskbarIcon"/> instance that manages the balloon.</param>
+    internal static RoutedEventArgs RaiseBalloonClosingEvent(DependencyObject target, TaskbarIcon source)
+    {
+      if (target == null) return null;
+
+      RoutedEventArgs args = new RoutedEventArgs(BalloonClosingEvent, source);
+      RoutedEventHelper.RaiseEvent(target, args);
+      return args;
+    }
+
+    #endregion
+        
+
+        
+    //ATTACHED PROPERTIES
+
+    #region ParentTaskbarIcon
+
+    /// <summary>
+    /// An attached property that is assigned to 
+    /// </summary>  
+    public static readonly DependencyProperty ParentTaskbarIconProperty =
+        DependencyProperty.RegisterAttached("ParentTaskbarIcon", typeof (TaskbarIcon), typeof (TaskbarIcon));
+
+    /// <summary>
+    /// Gets the ParentTaskbarIcon property.  This dependency property 
+    /// indicates ....
+    /// </summary>
+    public static TaskbarIcon GetParentTaskbarIcon(DependencyObject d)
+    {
+      return (TaskbarIcon)d.GetValue(ParentTaskbarIconProperty);
+    }
+
+    /// <summary>
+    /// Sets the ParentTaskbarIcon property.  This dependency property 
+    /// indicates ....
+    /// </summary>
+    public static void SetParentTaskbarIcon(DependencyObject d, TaskbarIcon value)
+    {
+      d.SetValue(ParentTaskbarIconProperty, value);
+    }
+
+    #endregion
+
+
+    //BASE CLASS PROPERTY OVERRIDES
+
+    /// <summary>
+    /// Registers properties.
+    /// </summary>
+    static TaskbarIcon()
+    {
+      //register change listener for the Visibility property
+      PropertyMetadata md = new PropertyMetadata(Visibility.Visible, VisibilityPropertyChanged);
+      VisibilityProperty.OverrideMetadata(typeof(TaskbarIcon), md);
+
+      //register change listener for the DataContext property
+      md = new FrameworkPropertyMetadata(new PropertyChangedCallback(DataContextPropertyChanged));
+      DataContextProperty.OverrideMetadata(typeof(TaskbarIcon), md);
+
+      //register change listener for the ContextMenu property
+      md = new FrameworkPropertyMetadata(new PropertyChangedCallback(ContextMenuPropertyChanged));
+      ContextMenuProperty.OverrideMetadata(typeof(TaskbarIcon), md);
+    }
+
+
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/TaskbarIcon.cs b/trunk/NotifyIconWpf/TaskbarIcon.cs
new file mode 100644 (file)
index 0000000..e56c138
--- /dev/null
@@ -0,0 +1,1016 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Drawing;
+using System.Threading;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Interop;
+using System.Windows.Threading;
+using Hardcodet.Wpf.TaskbarNotification.Interop;
+using Point=Hardcodet.Wpf.TaskbarNotification.Interop.Point;
+
+
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  /// <summary>
+  /// A WPF proxy to for a taskbar icon (NotifyIcon) that sits in the system's
+  /// taskbar notification area ("system tray").
+  /// </summary>
+  public partial class TaskbarIcon : FrameworkElement, IDisposable
+  {
+    #region Members
+
+    /// <summary>
+    /// Represents the current icon data.
+    /// </summary>
+    private NotifyIconData iconData;
+
+    /// <summary>
+    /// Receives messages from the taskbar icon.
+    /// </summary>
+    private readonly WindowMessageSink messageSink;
+
+    /// <summary>
+    /// An action that is being invoked if the
+    /// <see cref="singleClickTimer"/> fires.
+    /// </summary>
+    private Action delayedTimerAction;
+
+    /// <summary>
+    /// A timer that is used to differentiate between single
+    /// and double clicks.
+    /// </summary>
+    private readonly Timer singleClickTimer;
+
+    /// <summary>
+    /// A timer that is used to close open balloon tooltips.
+    /// </summary>
+    private readonly Timer balloonCloseTimer;
+
+    /// <summary>
+    /// Indicates whether the taskbar icon has been created or not.
+    /// </summary>
+    public bool IsTaskbarIconCreated { get; private set; }
+
+    /// <summary>
+    /// Indicates whether custom tooltips are supported, which depends
+    /// on the OS. Windows Vista or higher is required in order to
+    /// support this feature.
+    /// </summary>
+    public bool SupportsCustomToolTips
+    {
+      get { return messageSink.Version == NotifyIconVersion.Vista; }
+    }
+
+
+
+    /// <summary>
+    /// Checks whether a non-tooltip popup is currently opened.
+    /// </summary>
+    private bool IsPopupOpen
+    {
+      get
+      {
+        var popup = TrayPopupResolved;
+        var menu = ContextMenu;
+        var balloon = CustomBalloon;
+
+        return popup != null && popup.IsOpen ||
+               menu != null && menu.IsOpen ||
+               balloon != null && balloon.IsOpen;
+
+      }
+    }
+
+    #endregion
+
+
+    #region Construction
+
+    /// <summary>
+    /// Inits the taskbar icon and registers a message listener
+    /// in order to receive events from the taskbar area.
+    /// </summary>
+    public TaskbarIcon()
+    {
+      //using dummy sink in design mode
+      messageSink = Util.IsDesignMode
+                        ? WindowMessageSink.CreateEmpty()
+                        : new WindowMessageSink(NotifyIconVersion.Win95);
+
+      //init icon data structure
+      iconData = NotifyIconData.CreateDefault(messageSink.MessageWindowHandle);
+
+      //create the taskbar icon
+      CreateTaskbarIcon();
+
+      //register event listeners
+      messageSink.MouseEventReceived += OnMouseEvent;
+      messageSink.TaskbarCreated += OnTaskbarCreated;
+      messageSink.ChangeToolTipStateRequest += OnToolTipChange;
+      messageSink.BalloonToolTipChanged += OnBalloonToolTipChanged;
+
+      //init single click / balloon timers
+      singleClickTimer = new Timer(DoSingleClickAction);
+      balloonCloseTimer = new Timer(CloseBalloonCallback);
+
+      //register listener in order to get notified when the application closes
+      if (Application.Current != null) Application.Current.Exit += OnExit;
+    }
+
+    #endregion
+
+
+    #region Custom Balloons
+
+    /// <summary>
+    /// Shows a custom control as a tooltip in the tray location.
+    /// </summary>
+    /// <param name="balloon"></param>
+    /// <param name="animation">An optional animation for the popup.</param>
+    /// <param name="timeout">The time after which the popup is being closed.
+    /// Submit null in order to keep the balloon open inde
+    /// </param>
+    /// <exception cref="ArgumentNullException">If <paramref name="balloon"/>
+    /// is a null reference.</exception>
+    public void ShowCustomBalloon(UIElement balloon, PopupAnimation animation, int? timeout)
+    {
+      Dispatcher dispatcher = this.GetDispatcher();
+      if (!dispatcher.CheckAccess())
+      {
+        var action = new Action(() => ShowCustomBalloon(balloon, animation, timeout));
+        dispatcher.Invoke(DispatcherPriority.Normal, action);
+        return;
+      }
+
+      if (balloon == null) throw new ArgumentNullException("balloon");
+      if (timeout.HasValue && timeout < 500)
+      {
+        string msg = "Invalid timeout of {0} milliseconds. Timeout must be at least 500 ms";
+        msg = String.Format(msg, timeout); 
+        throw new ArgumentOutOfRangeException("timeout", msg);
+      }
+
+      EnsureNotDisposed();
+
+      //make sure we don't have an open balloon
+      lock (this)
+      {
+        CloseBalloon();
+      }
+      
+      //create an invisible popup that hosts the UIElement
+      Popup popup = new Popup();
+      popup.AllowsTransparency = true;
+
+      //provide the popup with the taskbar icon's data context
+      UpdateDataContext(popup, null, DataContext);
+
+      //don't animate by default - devs can use attached
+      //events or override
+      popup.PopupAnimation = animation;
+
+      popup.Child = balloon;
+
+      //don't set the PlacementTarget as it causes the popup to become hidden if the
+      //TaskbarIcon's parent is hidden, too...
+      //popup.PlacementTarget = this;
+      
+      popup.Placement = PlacementMode.AbsolutePoint;
+      popup.StaysOpen = true;
+
+      Point position = TrayInfo.GetTrayLocation();
+      popup.HorizontalOffset = position.X -1;
+      popup.VerticalOffset = position.Y -1;
+
+      //store reference
+      lock (this)
+      {
+        SetCustomBalloon(popup);
+      }
+
+      //assign this instance as an attached property
+      SetParentTaskbarIcon(balloon, this);
+
+      //fire attached event
+      RaiseBalloonShowingEvent(balloon, this);
+
+      //display item
+      popup.IsOpen = true;
+
+      if (timeout.HasValue)
+      {
+        //register timer to close the popup
+        balloonCloseTimer.Change(timeout.Value, Timeout.Infinite);
+      }
+    }
+
+
+    /// <summary>
+    /// Resets the closing timeout, which effectively
+    /// keeps a displayed balloon message open until
+    /// it is either closed programmatically through
+    /// <see cref="CloseBalloon"/> or due to a new
+    /// message being displayed.
+    /// </summary>
+    public void ResetBalloonCloseTimer()
+    {
+      if (IsDisposed) return;
+
+      lock (this)
+      {
+        //reset timer in any case
+        balloonCloseTimer.Change(Timeout.Infinite, Timeout.Infinite);
+      }
+    }
+
+
+    /// <summary>
+    /// Closes the current <see cref="CustomBalloon"/>, if the
+    /// property is set.
+    /// </summary>
+    public void CloseBalloon()
+    {
+      if (IsDisposed) return;
+
+      Dispatcher dispatcher = this.GetDispatcher();
+      if (!dispatcher.CheckAccess())
+      {
+        Action action = CloseBalloon;
+        dispatcher.Invoke(DispatcherPriority.Normal, action);
+        return;
+      }
+
+      lock (this)
+      {
+        //reset timer in any case
+        balloonCloseTimer.Change(Timeout.Infinite, Timeout.Infinite);
+
+        //reset old popup, if we still have one
+        Popup popup = CustomBalloon;
+        if (popup != null)
+        {
+          UIElement element = popup.Child;
+
+          //announce closing
+          RoutedEventArgs eventArgs = RaiseBalloonClosingEvent(element, this);
+          if (!eventArgs.Handled)
+          {
+            //if the event was handled, clear the reference to the popup,
+            //but don't close it - the handling code has to manage this stuff now
+
+            //close the popup
+            popup.IsOpen = false;
+
+            //reset attached property
+            if (element != null) SetParentTaskbarIcon(element, null);
+          }
+
+          //remove custom balloon anyway
+          SetCustomBalloon(null);
+        }
+      }
+    }
+
+
+    /// <summary>
+    /// Timer-invoke event which closes the currently open balloon and
+    /// resets the <see cref="CustomBalloon"/> dependency property.
+    /// </summary>
+    private void CloseBalloonCallback(object state)
+    {
+      if (IsDisposed) return;
+
+      //switch to UI thread
+      Action action = CloseBalloon;
+      this.GetDispatcher().Invoke(action);
+    }
+
+    #endregion
+
+    #region Process Incoming Mouse Events
+
+    /// <summary>
+    /// Processes mouse events, which are bubbled
+    /// through the class' routed events, trigger
+    /// certain actions (e.g. show a popup), or
+    /// both.
+    /// </summary>
+    /// <param name="me">Event flag.</param>
+    private void OnMouseEvent(MouseEvent me)
+    {
+      if (IsDisposed) return;
+
+      switch (me)
+      {
+        case MouseEvent.MouseMove:
+          RaiseTrayMouseMoveEvent();
+          //immediately return - there's nothing left to evaluate
+          return;
+        case MouseEvent.IconRightMouseDown:
+          RaiseTrayRightMouseDownEvent();
+          break;
+        case MouseEvent.IconLeftMouseDown:
+          RaiseTrayLeftMouseDownEvent();
+          break;
+        case MouseEvent.IconRightMouseUp:
+          RaiseTrayRightMouseUpEvent();
+          break;
+        case MouseEvent.IconLeftMouseUp:
+          RaiseTrayLeftMouseUpEvent();
+          break;
+        case MouseEvent.IconMiddleMouseDown:
+          RaiseTrayMiddleMouseDownEvent();
+          break;
+        case MouseEvent.IconMiddleMouseUp:
+          RaiseTrayMiddleMouseUpEvent();
+          break;
+        case MouseEvent.IconDoubleClick:
+          //cancel single click timer
+          singleClickTimer.Change(Timeout.Infinite, Timeout.Infinite);
+          //bubble event
+          RaiseTrayMouseDoubleClickEvent();
+          break;
+        case MouseEvent.BalloonToolTipClicked:
+          RaiseTrayBalloonTipClickedEvent();
+          break;
+        default:
+          throw new ArgumentOutOfRangeException("me", "Missing handler for mouse event flag: " + me);
+      }
+
+
+      //get mouse coordinates
+      Point cursorPosition = new Point();
+      WinApi.GetCursorPos(ref cursorPosition);
+
+      bool isLeftClickCommandInvoked = false;
+      
+      //show popup, if requested
+      if (me.IsMatch(PopupActivation))
+      {
+        if (me == MouseEvent.IconLeftMouseUp)
+        {
+          //show popup once we are sure it's not a double click
+          delayedTimerAction = () =>
+                                 {
+                                   LeftClickCommand.ExecuteIfEnabled(LeftClickCommandParameter, LeftClickCommandTarget ?? this);
+                                   ShowTrayPopup(cursorPosition);
+                                 };
+          singleClickTimer.Change(WinApi.GetDoubleClickTime(), Timeout.Infinite);
+          isLeftClickCommandInvoked = true;
+        }
+        else
+        {
+          //show popup immediately
+          ShowTrayPopup(cursorPosition);
+        }
+      }
+
+
+      //show context menu, if requested
+      if (me.IsMatch(MenuActivation))
+      {
+        if (me == MouseEvent.IconLeftMouseUp)
+        {
+          //show context menu once we are sure it's not a double click
+          delayedTimerAction = () =>
+                                 {
+                                   LeftClickCommand.ExecuteIfEnabled(LeftClickCommandParameter, LeftClickCommandTarget ?? this);
+                                   ShowContextMenu(cursorPosition);
+                                 };
+          singleClickTimer.Change(WinApi.GetDoubleClickTime(), Timeout.Infinite);
+          isLeftClickCommandInvoked = true;
+        }
+        else
+        {
+          //show context menu immediately
+          ShowContextMenu(cursorPosition);
+        }
+      }
+
+      //make sure the left click command is invoked on mouse clicks
+      if (me == MouseEvent.IconLeftMouseUp && !isLeftClickCommandInvoked)
+      {
+        //show context menu once we are sure it's not a double click
+        delayedTimerAction = () => LeftClickCommand.ExecuteIfEnabled(LeftClickCommandParameter, LeftClickCommandTarget ?? this);
+        singleClickTimer.Change(WinApi.GetDoubleClickTime(), Timeout.Infinite);
+      }
+
+    }
+
+    #endregion
+
+    #region ToolTips
+
+    /// <summary>
+    /// Displays a custom tooltip, if available. This method is only
+    /// invoked for Windows Vista and above.
+    /// </summary>
+    /// <param name="visible">Whether to show or hide the tooltip.</param>
+    private void OnToolTipChange(bool visible)
+    {
+      //if we don't have a tooltip, there's nothing to do here...
+      if (TrayToolTipResolved == null) return;
+
+      if (visible)
+      {
+        if (IsPopupOpen)
+        {
+          //ignore if we are already displaying something down there
+          return;
+        }
+
+        var args = RaisePreviewTrayToolTipOpenEvent();
+        if (args.Handled) return;
+
+        TrayToolTipResolved.IsOpen = true;
+
+        //raise attached event first
+        if (TrayToolTip != null) RaiseToolTipOpenedEvent(TrayToolTip);
+        
+        //bubble routed event
+        RaiseTrayToolTipOpenEvent();
+      }
+      else
+      {
+        var args = RaisePreviewTrayToolTipCloseEvent();
+        if (args.Handled) return;
+
+        //raise attached event first
+        if (TrayToolTip != null) RaiseToolTipCloseEvent(TrayToolTip);
+
+        TrayToolTipResolved.IsOpen = false;
+
+        //bubble event
+        RaiseTrayToolTipCloseEvent();
+      }
+    }
+
+
+    /// <summary>
+    /// Creates a <see cref="ToolTip"/> control that either
+    /// wraps the currently set <see cref="TrayToolTip"/>
+    /// control or the <see cref="ToolTipText"/> string.<br/>
+    /// If <see cref="TrayToolTip"/> itself is already
+    /// a <see cref="ToolTip"/> instance, it will be used directly.
+    /// </summary>
+    /// <remarks>We use a <see cref="ToolTip"/> rather than
+    /// <see cref="Popup"/> because there was no way to prevent a
+    /// popup from causing cyclic open/close commands if it was
+    /// placed under the mouse. ToolTip internally uses a Popup of
+    /// its own, but takes advance of Popup's internal <see cref="Popup.HitTestable"/>
+    /// property which prevents this issue.</remarks>
+    private void CreateCustomToolTip()
+    {
+      //check if the item itself is a tooltip
+      ToolTip tt = TrayToolTip as ToolTip;
+
+      if (tt == null && TrayToolTip != null)
+      {
+        //create an invisible tooltip that hosts the UIElement
+        tt = new ToolTip();
+        tt.Placement = PlacementMode.Mouse;
+
+        //do *not* set the placement target, as it causes the popup to become hidden if the
+        //TaskbarIcon's parent is hidden, too. At runtime, the parent can be resolved through
+        //the ParentTaskbarIcon attached dependency property:
+        //tt.PlacementTarget = this;
+
+        //make sure the tooltip is invisible
+        tt.HasDropShadow = false;
+        tt.BorderThickness = new Thickness(0);
+        tt.Background = System.Windows.Media.Brushes.Transparent;
+
+        //setting the 
+        tt.StaysOpen = true;
+        tt.Content = TrayToolTip;
+      }
+      else if (tt == null && !String.IsNullOrEmpty(ToolTipText))
+      {
+        //create a simple tooltip for the string
+        tt = new ToolTip();
+        tt.Content = ToolTipText;
+      }
+
+      //the tooltip explicitly gets the DataContext of this instance.
+      //If there is no DataContext, the TaskbarIcon assigns itself
+      if (tt != null)
+      {
+        UpdateDataContext(tt, null, DataContext);
+      }
+
+      //store a reference to the used tooltip
+      SetTrayToolTipResolved(tt);
+    }
+
+
+    /// <summary>
+    /// Sets tooltip settings for the class depending on defined
+    /// dependency properties and OS support.
+    /// </summary>
+    private void WriteToolTipSettings()
+    {
+      const IconDataMembers flags = IconDataMembers.Tip;
+      iconData.ToolTipText = ToolTipText;
+
+      if (messageSink.Version == NotifyIconVersion.Vista)
+      {
+        //we need to set a tooltip text to get tooltip events from the
+        //taskbar icon
+        if (String.IsNullOrEmpty(iconData.ToolTipText) && TrayToolTipResolved != null)
+        {
+          //if we have not tooltip text but a custom tooltip, we
+          //need to set a dummy value (we're displaying the ToolTip control, not the string)
+          iconData.ToolTipText = "ToolTip";
+        }
+      }
+
+      //update the tooltip text
+      Util.WriteIconData(ref iconData, NotifyCommand.Modify, flags);
+    }
+
+    #endregion
+
+    #region Custom Popup
+
+    /// <summary>
+    /// Creates a <see cref="ToolTip"/> control that either
+    /// wraps the currently set <see cref="TrayToolTip"/>
+    /// control or the <see cref="ToolTipText"/> string.<br/>
+    /// If <see cref="TrayToolTip"/> itself is already
+    /// a <see cref="ToolTip"/> instance, it will be used directly.
+    /// </summary>
+    /// <remarks>We use a <see cref="ToolTip"/> rather than
+    /// <see cref="Popup"/> because there was no way to prevent a
+    /// popup from causing cyclic open/close commands if it was
+    /// placed under the mouse. ToolTip internally uses a Popup of
+    /// its own, but takes advance of Popup's internal <see cref="Popup.HitTestable"/>
+    /// property which prevents this issue.</remarks>
+    private void CreatePopup()
+    {
+      //check if the item itself is a popup
+      Popup popup = TrayPopup as Popup;
+
+      if (popup == null && TrayPopup != null)
+      {
+        //create an invisible popup that hosts the UIElement
+        popup = new Popup();
+        popup.AllowsTransparency = true;
+
+        //don't animate by default - devs can use attached
+        //events or override
+        popup.PopupAnimation = PopupAnimation.None;
+
+        //the CreateRootPopup method outputs binding errors in the debug window because
+        //it tries to bind to "Popup-specific" properties in case they are provided by the child.
+        //We don't need that so just assign the control as the child.
+        popup.Child = TrayPopup;
+
+        //do *not* set the placement target, as it causes the popup to become hidden if the
+        //TaskbarIcon's parent is hidden, too. At runtime, the parent can be resolved through
+        //the ParentTaskbarIcon attached dependency property:
+        //popup.PlacementTarget = this;
+
+        popup.Placement = PlacementMode.AbsolutePoint;
+        popup.StaysOpen = false;
+      }
+
+      //the popup explicitly gets the DataContext of this instance.
+      //If there is no DataContext, the TaskbarIcon assigns itself
+      if (popup != null)
+      {
+        UpdateDataContext(popup, null, DataContext);
+      }
+
+      //store a reference to the used tooltip
+      SetTrayPopupResolved(popup);
+    }
+
+
+    /// <summary>
+    /// Displays the <see cref="TrayPopup"/> control if
+    /// it was set.
+    /// </summary>
+    private void ShowTrayPopup(Point cursorPosition)
+    {
+      if (IsDisposed) return;
+
+      //raise preview event no matter whether popup is currently set
+      //or not (enables client to set it on demand)
+      var args = RaisePreviewTrayPopupOpenEvent();
+      if (args.Handled) return;
+
+      if (TrayPopup != null)
+      {
+        //use absolute position, but place the popup centered above the icon
+        TrayPopupResolved.Placement = PlacementMode.AbsolutePoint;
+        TrayPopupResolved.HorizontalOffset = cursorPosition.X;
+        TrayPopupResolved.VerticalOffset = cursorPosition.Y;
+
+        //open popup
+        TrayPopupResolved.IsOpen = true;
+
+
+        IntPtr handle = IntPtr.Zero;
+        if (TrayPopupResolved.Child != null)
+        {
+          //try to get a handle on the popup itself (via its child)
+          HwndSource source = (HwndSource)PresentationSource.FromVisual(TrayPopupResolved.Child);
+          if (source != null) handle = source.Handle;
+        }
+
+        //if we don't have a handle for the popup, fall back to the message sink
+        if (handle == IntPtr.Zero) handle = messageSink.MessageWindowHandle;
+
+        //activate either popup or message sink to track deactivation.
+        //otherwise, the popup does not close if the user clicks somewhere else
+        WinApi.SetForegroundWindow(handle);
+
+        //raise attached event - item should never be null unless developers
+        //changed the CustomPopup directly...
+        if (TrayPopup != null) RaisePopupOpenedEvent(TrayPopup);
+
+        //bubble routed event
+        RaiseTrayPopupOpenEvent();
+      }
+    }
+
+    #endregion
+
+    #region Context Menu
+
+    /// <summary>
+    /// Displays the <see cref="ContextMenu"/> if
+    /// it was set.
+    /// </summary>
+    private void ShowContextMenu(Point cursorPosition)
+    {
+      if (IsDisposed) return;
+
+      //raise preview event no matter whether context menu is currently set
+      //or not (enables client to set it on demand)
+      var args = RaisePreviewTrayContextMenuOpenEvent();
+      if (args.Handled) return;
+
+      if (ContextMenu != null)
+      {
+        //use absolute position
+        ContextMenu.Placement = PlacementMode.AbsolutePoint;
+        ContextMenu.HorizontalOffset = cursorPosition.X;
+        ContextMenu.VerticalOffset = cursorPosition.Y;
+        ContextMenu.IsOpen = true;
+
+        //activate the message window to track deactivation - otherwise, the context menu
+        //does not close if the user clicks somewhere else
+        WinApi.SetForegroundWindow(messageSink.MessageWindowHandle);
+
+        //bubble event
+        RaiseTrayContextMenuOpenEvent();
+      }
+    }
+
+    #endregion
+
+    #region Balloon Tips
+
+    /// <summary>
+    /// Bubbles events if a balloon ToolTip was displayed
+    /// or removed.
+    /// </summary>
+    /// <param name="visible">Whether the ToolTip was just displayed
+    /// or removed.</param>
+    private void OnBalloonToolTipChanged(bool visible)
+    {
+      if (visible)
+      {
+        RaiseTrayBalloonTipShownEvent();
+      }
+      else
+      {
+        RaiseTrayBalloonTipClosedEvent();
+      }
+    }
+
+    /// <summary>
+    /// Displays a balloon tip with the specified title,
+    /// text, and icon in the taskbar for the specified time period.
+    /// </summary>
+    /// <param name="title">The title to display on the balloon tip.</param>
+    /// <param name="message">The text to display on the balloon tip.</param>
+    /// <param name="symbol">A symbol that indicates the severity.</param>
+    public void ShowBalloonTip(string title, string message, BalloonIcon symbol)
+    {
+      lock (this)
+      {
+        ShowBalloonTip(title, message, symbol.GetBalloonFlag(), IntPtr.Zero);
+      }
+    }
+
+
+    /// <summary>
+    /// Displays a balloon tip with the specified title,
+    /// text, and a custom icon in the taskbar for the specified time period.
+    /// </summary>
+    /// <param name="title">The title to display on the balloon tip.</param>
+    /// <param name="message">The text to display on the balloon tip.</param>
+    /// <param name="customIcon">A custom icon.</param>
+    /// <exception cref="ArgumentNullException">If <paramref name="customIcon"/>
+    /// is a null reference.</exception>
+    public void ShowBalloonTip(string title, string message, Icon customIcon)
+    {
+      if (customIcon == null) throw new ArgumentNullException("customIcon");
+
+      lock (this)
+      {
+        ShowBalloonTip(title, message, BalloonFlags.User, customIcon.Handle);
+      }
+    }
+
+
+    /// <summary>
+    /// Invokes <see cref="WinApi.Shell_NotifyIcon"/> in order to display
+    /// a given balloon ToolTip.
+    /// </summary>
+    /// <param name="title">The title to display on the balloon tip.</param>
+    /// <param name="message">The text to display on the balloon tip.</param>
+    /// <param name="flags">Indicates what icon to use.</param>
+    /// <param name="balloonIconHandle">A handle to a custom icon, if any, or
+    /// <see cref="IntPtr.Zero"/>.</param>
+    private void ShowBalloonTip(string title, string message, BalloonFlags flags, IntPtr balloonIconHandle)
+    {
+      EnsureNotDisposed();
+
+      iconData.BalloonText = message ?? String.Empty;
+      iconData.BalloonTitle = title ?? String.Empty;
+
+      iconData.BalloonFlags = flags;
+      iconData.CustomBalloonIconHandle = balloonIconHandle;
+      Util.WriteIconData(ref iconData, NotifyCommand.Modify, IconDataMembers.Info | IconDataMembers.Icon);
+    }
+
+
+    /// <summary>
+    /// Hides a balloon ToolTip, if any is displayed.
+    /// </summary>
+    public void HideBalloonTip()
+    {
+      EnsureNotDisposed();
+
+      //reset balloon by just setting the info to an empty string
+      iconData.BalloonText = iconData.BalloonTitle = String.Empty;
+      Util.WriteIconData(ref iconData, NotifyCommand.Modify, IconDataMembers.Info);
+    }
+
+    #endregion
+
+    #region Single Click Timer event
+
+    /// <summary>
+    /// Performs a delayed action if the user requested an action
+    /// based on a single click of the left mouse.<br/>
+    /// This method is invoked by the <see cref="singleClickTimer"/>.
+    /// </summary>
+    private void DoSingleClickAction(object state)
+    {
+      if (IsDisposed) return;
+
+      //run action
+      Action action = delayedTimerAction;
+      if (action != null)
+      {
+        //cleanup action
+        delayedTimerAction = null;
+
+        //switch to UI thread
+        this.GetDispatcher().Invoke(action);
+      }
+    }
+
+    #endregion
+
+    #region Set Version (API)
+
+    /// <summary>
+    /// Sets the version flag for the <see cref="iconData"/>.
+    /// </summary>
+    private void SetVersion()
+    {
+      iconData.VersionOrTimeout = (uint) NotifyIconVersion.Vista;
+      bool status = WinApi.Shell_NotifyIcon(NotifyCommand.SetVersion, ref iconData);
+
+      if (!status)
+      {
+        iconData.VersionOrTimeout = (uint) NotifyIconVersion.Win2000;
+        status = Util.WriteIconData(ref iconData, NotifyCommand.SetVersion);
+      }
+
+      if (!status)
+      {
+        iconData.VersionOrTimeout = (uint) NotifyIconVersion.Win95;
+        status = Util.WriteIconData(ref iconData, NotifyCommand.SetVersion);
+      }
+
+      if (!status)
+      {
+        Debug.Fail("Could not set version");
+      }
+    }
+
+    #endregion
+
+    #region Create / Remove Taskbar Icon
+
+    /// <summary>
+    /// Recreates the taskbar icon if the whole taskbar was
+    /// recreated (e.g. because Explorer was shut down).
+    /// </summary>
+    private void OnTaskbarCreated()
+    {
+      IsTaskbarIconCreated = false;
+      CreateTaskbarIcon();
+    }
+
+
+    /// <summary>
+    /// Creates the taskbar icon. This message is invoked during initialization,
+    /// if the taskbar is restarted, and whenever the icon is displayed.
+    /// </summary>
+    private void CreateTaskbarIcon()
+    {
+      lock (this)
+      {
+        if (!IsTaskbarIconCreated)
+        {
+          const IconDataMembers members = IconDataMembers.Message
+                                          | IconDataMembers.Icon
+                                          | IconDataMembers.Tip;
+
+          //write initial configuration
+          var status = Util.WriteIconData(ref iconData, NotifyCommand.Add, members);
+          if (!status)
+          {
+            throw new Win32Exception("Could not create icon data");
+          }
+
+          //set to most recent version
+          SetVersion();
+          messageSink.Version = (NotifyIconVersion) iconData.VersionOrTimeout;
+
+          IsTaskbarIconCreated = true;
+        }
+      }
+    }
+
+
+    /// <summary>
+    /// Closes the taskbar icon if required.
+    /// </summary>
+    private void RemoveTaskbarIcon()
+    {
+      lock (this)
+      {
+        if (IsTaskbarIconCreated)
+        {
+          Util.WriteIconData(ref iconData, NotifyCommand.Delete, IconDataMembers.Message);
+          IsTaskbarIconCreated = false;
+        }
+      }
+    }
+
+    #endregion
+
+    #region Dispose / Exit
+
+    /// <summary>
+    /// Set to true as soon as <see cref="Dispose"/>
+    /// has been invoked.
+    /// </summary>
+    public bool IsDisposed { get; private set; }
+
+
+    /// <summary>
+    /// Checks if the object has been disposed and
+    /// raises a <see cref="ObjectDisposedException"/> in case
+    /// the <see cref="IsDisposed"/> flag is true.
+    /// </summary>
+    private void EnsureNotDisposed()
+    {
+      if (IsDisposed) throw new ObjectDisposedException(Name ?? GetType().FullName);
+    }
+
+
+    /// <summary>
+    /// Disposes the class if the application exits.
+    /// </summary>
+    private void OnExit(object sender, EventArgs e)
+    {
+      Dispose();
+    }
+
+
+    /// <summary>
+    /// This destructor will run only if the <see cref="Dispose()"/>
+    /// method does not get called. This gives this base class the
+    /// opportunity to finalize.
+    /// <para>
+    /// Important: Do not provide destructors in types derived from
+    /// this class.
+    /// </para>
+    /// </summary>
+    ~TaskbarIcon()
+    {
+      Dispose(false);
+    }
+
+
+    /// <summary>
+    /// Disposes the object.
+    /// </summary>
+    /// <remarks>This method is not virtual by design. Derived classes
+    /// should override <see cref="Dispose(bool)"/>.
+    /// </remarks>
+    public void Dispose()
+    {
+      Dispose(true);
+
+      // This object will be cleaned up by the Dispose method.
+      // Therefore, you should call GC.SupressFinalize to
+      // take this object off the finalization queue 
+      // and prevent finalization code for this object
+      // from executing a second time.
+      GC.SuppressFinalize(this);
+    }
+
+
+    /// <summary>
+    /// Closes the tray and releases all resources.
+    /// </summary>
+    /// <summary>
+    /// <c>Dispose(bool disposing)</c> executes in two distinct scenarios.
+    /// If disposing equals <c>true</c>, the method has been called directly
+    /// or indirectly by a user's code. Managed and unmanaged resources
+    /// can be disposed.
+    /// </summary>
+    /// <param name="disposing">If disposing equals <c>false</c>, the method
+    /// has been called by the runtime from inside the finalizer and you
+    /// should not reference other objects. Only unmanaged resources can
+    /// be disposed.</param>
+    /// <remarks>Check the <see cref="IsDisposed"/> property to determine whether
+    /// the method has already been called.</remarks>
+    private void Dispose(bool disposing)
+    {
+      //don't do anything if the component is already disposed
+      if (IsDisposed || !disposing) return;
+
+      lock (this)
+      {
+        IsDisposed = true;
+
+        //deregister application event listener
+        if (Application.Current != null)
+        {
+          Application.Current.Exit -= OnExit;
+        }
+
+        //stop timers
+        singleClickTimer.Dispose();
+        balloonCloseTimer.Dispose();
+
+        //dispose message sink
+        messageSink.Dispose();
+
+        //remove icon
+        RemoveTaskbarIcon();
+      }
+    }
+
+    #endregion
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/Util.cs b/trunk/NotifyIconWpf/Util.cs
new file mode 100644 (file)
index 0000000..3fa31be
--- /dev/null
@@ -0,0 +1,308 @@
+// hardcodet.net NotifyIcon for WPF
+// Copyright (c) 2009 Philipp Sumi
+// Contact and Information: http://www.hardcodet.net
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the Code Project Open License (CPOL);
+// either version 1.0 of the License, or (at your option) any later
+// version.
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+// THIS COPYRIGHT NOTICE MAY NOT BE REMOVED FROM THIS FILE
+
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Resources;
+using System.Windows.Threading;
+using Hardcodet.Wpf.TaskbarNotification.Interop;
+
+namespace Hardcodet.Wpf.TaskbarNotification
+{
+  /// <summary>
+  /// Util and extension methods.
+  /// </summary>
+  internal static class Util
+  {
+    public static readonly object SyncRoot = new object();
+
+    #region IsDesignMode
+
+    private static readonly bool isDesignMode;
+
+    /// <summary>
+    /// Checks whether the application is currently in design mode.
+    /// </summary>
+    public static bool IsDesignMode
+    {
+      get { return isDesignMode; }
+    }
+
+    #endregion
+
+    #region construction
+
+    static Util()
+    {
+      isDesignMode =
+          (bool)
+          DependencyPropertyDescriptor.FromProperty(DesignerProperties.IsInDesignModeProperty, typeof (FrameworkElement))
+              .Metadata.DefaultValue;
+    }
+
+    #endregion
+
+    #region CreateHelperWindow
+
+    /// <summary>
+    /// Creates an transparent window without dimension that
+    /// can be used to temporarily obtain focus and/or
+    /// be used as a window message sink.
+    /// </summary>
+    /// <returns>Empty window.</returns>
+    public static Window CreateHelperWindow()
+    {
+      return new Window
+               {
+                   Width = 0,
+                   Height = 0,
+                   ShowInTaskbar = false,
+                   WindowStyle = WindowStyle.None,
+                   AllowsTransparency = true,
+                   Opacity = 0
+               };
+    }
+
+    #endregion
+
+    #region WriteIconData
+
+    /// <summary>
+    /// Updates the taskbar icons with data provided by a given
+    /// <see cref="NotifyIconData"/> instance.
+    /// </summary>
+    /// <param name="data">Configuration settings for the NotifyIcon.</param>
+    /// <param name="command">Operation on the icon (e.g. delete the icon).</param>
+    /// <returns>True if the data was successfully written.</returns>
+    /// <remarks>See Shell_NotifyIcon documentation on MSDN for details.</remarks>
+    public static bool WriteIconData(ref NotifyIconData data, NotifyCommand command)
+    {
+      return WriteIconData(ref data, command, data.ValidMembers);
+    }
+
+
+    /// <summary>
+    /// Updates the taskbar icons with data provided by a given
+    /// <see cref="NotifyIconData"/> instance.
+    /// </summary>
+    /// <param name="data">Configuration settings for the NotifyIcon.</param>
+    /// <param name="command">Operation on the icon (e.g. delete the icon).</param>
+    /// <param name="flags">Defines which members of the <paramref name="data"/>
+    /// structure are set.</param>
+    /// <returns>True if the data was successfully written.</returns>
+    /// <remarks>See Shell_NotifyIcon documentation on MSDN for details.</remarks>
+    public static bool WriteIconData(ref NotifyIconData data, NotifyCommand command, IconDataMembers flags)
+    {
+      //do nothing if in design mode
+      if (IsDesignMode) return true;
+
+      data.ValidMembers = flags;
+      lock (SyncRoot)
+      {
+        return WinApi.Shell_NotifyIcon(command, ref data);
+      }
+    }
+
+    #endregion
+
+    #region GetBalloonFlag
+
+    /// <summary>
+    /// Gets a <see cref="BalloonFlags"/> enum value that
+    /// matches a given <see cref="BalloonIcon"/>.
+    /// </summary>
+    public static BalloonFlags GetBalloonFlag(this BalloonIcon icon)
+    {
+      switch (icon)
+      {
+        case BalloonIcon.None:
+          return BalloonFlags.None;
+        case BalloonIcon.Info:
+          return BalloonFlags.Info;
+        case BalloonIcon.Warning:
+          return BalloonFlags.Warning;
+        case BalloonIcon.Error:
+          return BalloonFlags.Error;
+        default:
+          throw new ArgumentOutOfRangeException("icon");
+      }
+    }
+
+    #endregion
+
+    #region ImageSource to Icon
+
+    /// <summary>
+    /// Reads a given image resource into a WinForms icon.
+    /// </summary>
+    /// <param name="imageSource">Image source pointing to
+    /// an icon file (*.ico).</param>
+    /// <returns>An icon object that can be used with the
+    /// taskbar area.</returns>
+    public static Icon ToIcon(this ImageSource imageSource)
+    {
+      if (imageSource == null) return null;
+
+      Uri uri = new Uri(imageSource.ToString());
+      StreamResourceInfo streamInfo = Application.GetResourceStream(uri);
+
+      if (streamInfo == null)
+      {
+        string msg = "The supplied image source '{0}' could not be resolved.";
+        msg = String.Format(msg, imageSource);
+        throw new ArgumentException(msg);
+      }
+
+      return new Icon(streamInfo.Stream);
+    }
+
+    #endregion
+
+    #region evaluate listings
+
+    /// <summary>
+    /// Checks a list of candidates for equality to a given
+    /// reference value.
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="value">The evaluated value.</param>
+    /// <param name="candidates">A liste of possible values that are
+    /// regarded valid.</param>
+    /// <returns>True if one of the submitted <paramref name="candidates"/>
+    /// matches the evaluated value. If the <paramref name="candidates"/>
+    /// parameter itself is null, too, the method returns false as well,
+    /// which allows to check with null values, too.</returns>
+    /// <exception cref="ArgumentNullException">If <paramref name="candidates"/>
+    /// is a null reference.</exception>
+    public static bool Is<T>(this T value, params T[] candidates)
+    {
+      if (candidates == null) return false;
+
+      foreach (var t in candidates)
+      {
+        if (value.Equals(t)) return true;
+      }
+
+      return false;
+    }
+
+    #endregion
+
+    #region match MouseEvent to PopupActivation
+
+    /// <summary>
+    /// Checks if a given <see cref="PopupActivationMode"/> is a match for
+    /// an effectively pressed mouse button.
+    /// </summary>
+    public static bool IsMatch(this MouseEvent me, PopupActivationMode activationMode)
+    {
+      switch (activationMode)
+      {
+        case PopupActivationMode.LeftClick:
+          return me == MouseEvent.IconLeftMouseUp;
+        case PopupActivationMode.RightClick:
+          return me == MouseEvent.IconRightMouseUp;
+        case PopupActivationMode.LeftOrRightClick:
+          return me.Is(MouseEvent.IconLeftMouseUp, MouseEvent.IconRightMouseUp);
+        case PopupActivationMode.LeftOrDoubleClick:
+          return me.Is(MouseEvent.IconLeftMouseUp, MouseEvent.IconDoubleClick);
+        case PopupActivationMode.DoubleClick:
+          return me.Is(MouseEvent.IconDoubleClick);
+        case PopupActivationMode.MiddleClick:
+          return me == MouseEvent.IconMiddleMouseUp;
+        case PopupActivationMode.All:
+          //return true for everything except mouse movements
+          return me != MouseEvent.MouseMove;
+        default:
+          throw new ArgumentOutOfRangeException("activationMode");
+      }
+    }
+
+    #endregion
+
+    #region execute command
+
+    /// <summary>
+    /// Executes a given command if its <see cref="ICommand.CanExecute"/> method
+    /// indicates it can run.
+    /// </summary>
+    /// <param name="command">The command to be executed, or a null reference.</param>
+    /// <param name="commandParameter">An optional parameter that is associated with
+    /// the command.</param>
+    /// <param name="target">The target element on which to raise the command.</param>
+    public static void ExecuteIfEnabled(this ICommand command, object commandParameter, IInputElement target)
+    {
+      if (command == null) return;
+
+      RoutedCommand rc = command as RoutedCommand;
+      if (rc != null)
+      {
+        //routed commands work on a target
+        if (rc.CanExecute(commandParameter, target)) rc.Execute(commandParameter, target);
+      }
+      else if (command.CanExecute(commandParameter))
+      {
+        command.Execute(commandParameter);
+      }
+    }
+
+    #endregion
+
+    /// <summary>
+    /// Returns a dispatcher for multi-threaded scenarios
+    /// </summary>
+    /// <returns></returns>
+    internal static Dispatcher GetDispatcher(this DispatcherObject source)
+    {
+      //use the application's dispatcher by default
+      if (Application.Current != null) return Application.Current.Dispatcher;
+
+      //fallback for WinForms environments
+      if (source.Dispatcher != null) return source.Dispatcher;
+
+      //ultimatively use the thread's dispatcher
+      return Dispatcher.CurrentDispatcher;
+    }
+
+
+    /// <summary>
+    /// Checks whether the <see cref="FrameworkElement.DataContextProperty"/>
+    ///  is bound or not.
+    /// </summary>
+    /// <param name="element">The element to be checked.</param>
+    /// <returns>True if the data context property is being managed by a
+    /// binding expression.</returns>
+    /// <exception cref="ArgumentNullException">If <paramref name="element"/>
+    /// is a null reference.</exception>
+    public static bool IsDataContextDataBound(this FrameworkElement element)
+    {
+      if (element == null) throw new ArgumentNullException("element");
+      return element.GetBindingExpression(FrameworkElement.DataContextProperty) != null;
+    }
+  }
+}
\ No newline at end of file
diff --git a/trunk/NotifyIconWpf/pithos.snk b/trunk/NotifyIconWpf/pithos.snk
new file mode 100644 (file)
index 0000000..2069d32
Binary files /dev/null and b/trunk/NotifyIconWpf/pithos.snk differ
diff --git a/trunk/Pithos.Client.WPF/App.xaml b/trunk/Pithos.Client.WPF/App.xaml
new file mode 100644 (file)
index 0000000..9389d19
--- /dev/null
@@ -0,0 +1,17 @@
+<Application x:Class="Pithos.Client.WPF.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             
+             xmlns:local="clr-namespace:Pithos.Client.WPF"
+             xmlns:tb="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification">
+    <Application.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary>
+                    <local:AppBootstrapper x:Key="bootstrapper" />
+
+                </ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </Application.Resources>
+
+</Application>
diff --git a/trunk/Pithos.Client.WPF/App.xaml.cs b/trunk/Pithos.Client.WPF/App.xaml.cs
new file mode 100644 (file)
index 0000000..54109ad
--- /dev/null
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Windows;
+
+namespace Pithos.Client.WPF
+{
+    /// <summary>
+    /// Interaction logic for App.xaml
+    /// </summary>
+    public partial class App : Application
+    {
+        public App()
+        {
+            InitializeComponent();
+        }
+    }
+
+}
diff --git a/trunk/Pithos.Client.WPF/AppBootstrapper.cs b/trunk/Pithos.Client.WPF/AppBootstrapper.cs
new file mode 100644 (file)
index 0000000..a9167f8
--- /dev/null
@@ -0,0 +1,81 @@
+using System.Windows;
+using System.Windows.Navigation;
+using Caliburn.Micro.Logging;
+using Pithos.Core;
+using Pithos.Network;
+
+namespace Pithos.Client.WPF
+{
+       using System;
+       using System.Collections.Generic;
+       using System.ComponentModel.Composition;
+       using System.ComponentModel.Composition.Hosting;
+       using System.ComponentModel.Composition.Primitives;
+       using System.Linq;
+       using Caliburn.Micro;
+
+       public class AppBootstrapper : Bootstrapper<IShell>
+       {
+               CompositionContainer container;
+
+           public AppBootstrapper()
+           {
+            LogManager.GetLog = type => new DebugLogger(type);
+           }
+
+               /// <summary>
+               /// By default, we are configured to use MEF
+               /// </summary>
+               protected override void Configure() {
+                   var catalog = new AggregateCatalog(
+                       AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()
+                       );
+
+            Type[] types = { typeof(PithosMonitor), typeof(CloudFilesClient) };
+            foreach (var type in types)
+            {
+                catalog.Catalogs.Add(new AssemblyCatalog(type.Assembly));
+            }
+
+                      
+
+
+                       container = new CompositionContainer(catalog);
+
+                       var batch = new CompositionBatch();
+
+                       batch.AddExportedValue<IWindowManager>(new WindowManager());
+                       batch.AddExportedValue<IEventAggregator>(new EventAggregator());
+                       batch.AddExportedValue(container);
+                   batch.AddExportedValue(catalog);
+
+
+
+
+
+
+                       container.Compose(batch);
+               }
+
+               protected override object GetInstance(Type serviceType, string key)
+               {
+                       string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
+                       var exports = container.GetExportedValues<object>(contract);
+
+                       if (exports.Count() > 0)
+                               return exports.First();
+
+                       throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
+               }
+
+               protected override IEnumerable<object> GetAllInstances(Type serviceType)
+               {
+                       return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
+               }
+
+               protected override void BuildUp(object instance)
+               {
+                       container.SatisfyImportsOnce(instance);
+               }
+       }
+}
diff --git a/trunk/Pithos.Client.WPF/Caliburn/Micro/Logging/DebugLogger.cs b/trunk/Pithos.Client.WPF/Caliburn/Micro/Logging/DebugLogger.cs
new file mode 100644 (file)
index 0000000..d274791
--- /dev/null
@@ -0,0 +1,85 @@
+using System;
+using System.Diagnostics;
+
+namespace Caliburn.Micro.Logging
+{
+  /// <summary>
+  /// Implementation of the ILog and ILogExtended interfaces using
+  /// <see cref="Debug"/>.
+  /// </summary>
+  public class DebugLogger : ILog//, ILogExtended
+  {
+    #region Constants
+    private const string ErrorText = "ERROR";
+    private const string WarnText = "WARN";
+    private const string InfoText = "INFO";
+    #endregion
+
+    #region Fields
+    private readonly Type _type;
+    #endregion
+    
+    #region Constructors
+    public DebugLogger(Type type)
+    {
+      _type = type;
+    }
+    #endregion
+    
+    #region Helper Methods
+    private string CreateLogMessage(string format, params object[] args)
+    {
+      return string.Format("[{0}] {1}", DateTime.Now.ToString("o"), string.Format(format, args));
+    }
+    #endregion
+    
+    #region ILog Members
+    /// <summary>
+    /// Logs the exception.
+    /// </summary>
+    /// <param name="exception">The exception.</param>
+    public void Error(Exception exception)
+    {
+      Debug.WriteLine(CreateLogMessage(exception.ToString()), ErrorText);
+    }
+    /// <summary>
+    /// Logs the message as info.
+    /// </summary>
+    /// <param name="format">A formatted message.</param><param name="args">Parameters to be injected into the formatted message.</param>
+    public void Info(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), InfoText);
+    }
+    /// <summary>
+    /// Logs the message as a warning.
+    /// </summary>
+    /// <param name="format">A formatted message.</param><param name="args">Parameters to be injected into the formatted message.</param>
+    public void Warn(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), WarnText);
+    }
+    #endregion
+
+    #region Implementation of ILogExtended
+    /// <summary>
+    /// Logs the message as error.
+    /// </summary>
+    /// <param name="format">A formatted message.</param>
+    /// <param name="args">Parameters to be injected into the formatted message.</param>
+    public void Error(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), ErrorText);
+    }
+    /// <summary>
+    /// Logs the exception.
+    /// </summary>
+    /// <param name="exception">The exception.</param>
+    /// <param name="format">A formatted message.</param>
+    /// <param name="args">Parameters to be injected into the formatted message.</param>
+    public void Error(Exception exception, string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format + " - Exception = " + exception.ToString(), args), ErrorText);
+    }
+    #endregion
+  }
+}
diff --git a/trunk/Pithos.Client.WPF/Configuration/PithosSettings.cs b/trunk/Pithos.Client.WPF/Configuration/PithosSettings.cs
new file mode 100644 (file)
index 0000000..5e8583e
--- /dev/null
@@ -0,0 +1,123 @@
+// -----------------------------------------------------------------------
+// <copyright file="PithosSettings.cs" company="Microsoft">
+// TODO: Update copyright text.
+// </copyright>
+// -----------------------------------------------------------------------
+
+using System.ComponentModel.Composition;
+using System.Configuration;
+using System.Dynamic;
+using Pithos.Client.WPF.Properties;
+using Pithos.Interfaces;
+
+namespace Pithos.Client.WPF.Configuration
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Linq;
+    using System.Text;
+
+    [Export(typeof(IPithosSettings))]
+    public class PithosSettings : DynamicObject, IPithosSettings
+    {
+        public string PithosPath
+        {
+            get { return Settings.Default.PithosPath; }
+            set { Settings.Default.PithosPath = value; }
+        }
+
+        public string IconsPath
+        {
+            get { return Settings.Default.IconPath; }
+            set { Settings.Default.IconPath = value; }
+        }
+
+        public string UserName
+        {
+            get { return Settings.Default.UserName; }
+            set { Settings.Default.UserName = value; }
+        }
+
+        public string ApiKey
+        {
+            get { return Settings.Default.ApiKey; }
+            set { Settings.Default.ApiKey = value; }
+        }
+
+        public AccountsCollection Accounts
+        {
+            get { return Settings.Default.Accounts; }
+            set { Settings.Default.Accounts = value; }
+        }
+
+        public string ProxyServer
+        {
+            get { return Settings.Default.ProxyServer; }
+            set { Settings.Default.ProxyServer = value; }
+        }
+
+        public string ProxyPort
+        {
+            get { return Settings.Default.ProxyPort; }
+            set { Settings.Default.ProxyPort = value; }
+        }
+
+        public string ProxyUsername
+        {
+            get { return Settings.Default.ProxyUsername; }
+            set { Settings.Default.ProxyUsername = value; }
+        }
+
+
+        public string ProxyPassword
+        {
+            get { return Settings.Default.ProxyPassword; }
+            set { Settings.Default.ProxyPassword = value; }
+        }
+
+        public bool ProxyAuthentication
+        {
+
+            get { return Settings.Default.ProxyAuthentication; }
+            set { Settings.Default.ProxyAuthentication = value; }
+        }
+        
+        public bool ExtensionsActivated
+        {
+
+            get { return Settings.Default.ExtensionsActivated; }
+            set { Settings.Default.ExtensionsActivated = value; }
+        }
+
+        public override IEnumerable<string> GetDynamicMemberNames()
+        {
+            return (from SettingsProperty property in Settings.Default.Properties
+                        select property.Name);
+        }
+
+
+        private Lazy<ILookup<string, SettingsProperty>> _propertyNames = new Lazy<ILookup<string, SettingsProperty>>(
+            () => (from SettingsProperty property in
+                       Settings.Default.Properties
+                   select property).ToLookup(property => property.Name));
+
+        public override bool TryGetMember(GetMemberBinder binder, out object result)
+        {
+            result = null;
+            if (!_propertyNames.Value.Contains(binder.Name))
+                return false;
+            result=Settings.Default.Properties[binder.Name];
+            return true;
+        }
+
+        public void Save()
+        {
+            Settings.Default.Save();
+        }
+
+        public void Reload()
+        {
+            Settings.Default.Reload();
+        }
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/FileEntry.cs b/trunk/Pithos.Client.WPF/FileEntry.cs
new file mode 100644 (file)
index 0000000..0958358
--- /dev/null
@@ -0,0 +1,8 @@
+namespace Pithos.Client.WPF
+{
+    public class FileEntry
+    {
+        public string FileName { get; set; }
+        public string FullPath { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/IShell.cs b/trunk/Pithos.Client.WPF/IShell.cs
new file mode 100644 (file)
index 0000000..8290828
--- /dev/null
@@ -0,0 +1,3 @@
+namespace Pithos.Client.WPF {
+    public interface IShell {}
+}
diff --git a/trunk/Pithos.Client.WPF/Images/Accounts.png b/trunk/Pithos.Client.WPF/Images/Accounts.png
new file mode 100644 (file)
index 0000000..356ebfa
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/Accounts.png differ
diff --git a/trunk/Pithos.Client.WPF/Images/Advanced.png b/trunk/Pithos.Client.WPF/Images/Advanced.png
new file mode 100644 (file)
index 0000000..b506c9e
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/Advanced.png differ
diff --git a/trunk/Pithos.Client.WPF/Images/Bandwidth.png b/trunk/Pithos.Client.WPF/Images/Bandwidth.png
new file mode 100644 (file)
index 0000000..185a213
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/Bandwidth.png differ
diff --git a/trunk/Pithos.Client.WPF/Images/General.png b/trunk/Pithos.Client.WPF/Images/General.png
new file mode 100644 (file)
index 0000000..ffcc7b4
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/General.png differ
diff --git a/trunk/Pithos.Client.WPF/Images/Network.png b/trunk/Pithos.Client.WPF/Images/Network.png
new file mode 100644 (file)
index 0000000..84011e9
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/Network.png differ
diff --git a/trunk/Pithos.Client.WPF/Images/Tray.ico b/trunk/Pithos.Client.WPF/Images/Tray.ico
new file mode 100644 (file)
index 0000000..19ab02c
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/Tray.ico differ
diff --git a/trunk/Pithos.Client.WPF/Images/TrayInSynch.ico b/trunk/Pithos.Client.WPF/Images/TrayInSynch.ico
new file mode 100644 (file)
index 0000000..5bf2b2d
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/TrayInSynch.ico differ
diff --git a/trunk/Pithos.Client.WPF/Images/TraySynching.ico b/trunk/Pithos.Client.WPF/Images/TraySynching.ico
new file mode 100644 (file)
index 0000000..d246fbd
Binary files /dev/null and b/trunk/Pithos.Client.WPF/Images/TraySynching.ico differ
diff --git a/trunk/Pithos.Client.WPF/MainWindow.xaml b/trunk/Pithos.Client.WPF/MainWindow.xaml
new file mode 100644 (file)
index 0000000..04fd36a
--- /dev/null
@@ -0,0 +1,8 @@
+<Window x:Class="Pithos.Client.WPF.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        Title="MainWindow" Height="350" Width="525">
+    <Grid>
+        
+    </Grid>
+</Window>
diff --git a/trunk/Pithos.Client.WPF/MainWindow.xaml.cs b/trunk/Pithos.Client.WPF/MainWindow.xaml.cs
new file mode 100644 (file)
index 0000000..0eab58c
--- /dev/null
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Pithos.Client.WPF
+{
+    /// <summary>
+    /// Interaction logic for MainWindow.xaml
+    /// </summary>
+    public partial class MainWindow : Window
+    {
+        public MainWindow()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/Pithos.Client.WPF.csproj b/trunk/Pithos.Client.WPF/Pithos.Client.WPF.csproj
new file mode 100644 (file)
index 0000000..e7b4db9
--- /dev/null
@@ -0,0 +1,183 @@
+<?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)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{4D9406A3-50ED-4672-BB97-A0B3EA4946FE}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Pithos.Client.WPF</RootNamespace>
+    <AssemblyName>Pithos.Client.WPF</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.ComponentModel.Composition" />
+    <Reference Include="System.Configuration.Install" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\packages\System.Data.SQLite.1.0.66.1\lib\System.Data.SQLite.DLL</HintPath>
+    </Reference>
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Caliburn.Micro.1.2.0\lib\Net40\System.Windows.Interactivity.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Compile Include="Caliburn\Micro\Logging\DebugLogger.cs" />
+    <Compile Include="Configuration\PithosSettings.cs" />
+    <Compile Include="FileEntry.cs" />
+    <Compile Include="PithosCommand.cs" />
+    <Compile Include="PreferencesView.xaml.cs">
+      <DependentUpon>PreferencesView.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="PreferencesViewModel.cs" />
+    <Compile Include="ShellExtensionController.cs" />
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="AppBootstrapper.cs" />
+    <Compile Include="IShell.cs" />
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Page Include="PithosStyles.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="PreferencesView.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="WhistlerBlue.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="app.config" />
+    <None Include="packages.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <AppDesigner Include="Properties\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="Images\Tray.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="Images\TraySynching.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="Images\TrayInSynch.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\Downloads\caliburnmicro\caliburnmicro_1f6100f2f0af\src\Caliburn.Micro.WPF\Caliburn.Micro.WPF.csproj">
+      <Project>{B633FE8C-B40E-4122-A763-F94C8B1A70F8}</Project>
+      <Name>Caliburn.Micro.WPF</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\NotifyIconWpf\NotifyIconWpf.csproj">
+      <Project>{7AC63864-7638-41C4-969C-D3197EF2BED9}</Project>
+      <Name>NotifyIconWpf</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Pithos.Core\Pithos.Core.csproj">
+      <Project>{142AF135-DF30-4563-B0AC-B604235AE874}</Project>
+      <Name>Pithos.Core</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Pithos.Interfaces\Pithos.Interfaces.csproj">
+      <Project>{7EEFF32F-CCF8-436A-9E0B-F40434C09AF4}</Project>
+      <Name>Pithos.Interfaces</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Pithos.Network\Pithos.Network.csproj">
+      <Project>{C8E2BC8B-C7F1-4222-855C-4B04A57FFDFD}</Project>
+      <Name>Pithos.Network</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Pithos.ShellExtensions\Pithos.ShellExtensions.csproj">
+      <Project>{240B432F-1030-4623-BCC3-FF351D6C1B63}</Project>
+      <Name>Pithos.ShellExtensions</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Resource Include="Images\Accounts.png" />
+    <Resource Include="Images\Advanced.png" />
+    <Resource Include="Images\Bandwidth.png" />
+    <Resource Include="Images\General.png" />
+    <Resource Include="Images\Network.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.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>
+  -->
+</Project>
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/PithosCommand.cs b/trunk/Pithos.Client.WPF/PithosCommand.cs
new file mode 100644 (file)
index 0000000..22591d0
--- /dev/null
@@ -0,0 +1,45 @@
+// -----------------------------------------------------------------------
+// <copyright file="PithosCommand.cs" company="Microsoft">
+// TODO: Update copyright text.
+// </copyright>
+// -----------------------------------------------------------------------
+
+using System.Windows.Input;
+
+namespace Pithos.Client.WPF
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Linq;
+    using System.Text;
+
+    /// <summary>
+    /// TODO: Update summary.
+    /// </summary>
+    public class PithosCommand:ICommand
+    {
+        private Action _action;
+        private Func<bool> _condition;
+
+       public PithosCommand(Action execute,Func<bool> canExecute=null )
+        {
+            _action = execute;
+            _condition = canExecute;
+
+        }
+
+        public void Execute(object parameter)
+        {
+            _action();
+        }
+
+        public bool CanExecute(object parameter)
+        {
+            if (_condition == null)
+                return true;
+            return _condition();
+        }
+
+        public event EventHandler CanExecuteChanged;
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/PithosStyles.xaml b/trunk/Pithos.Client.WPF/PithosStyles.xaml
new file mode 100644 (file)
index 0000000..95f67ae
--- /dev/null
@@ -0,0 +1,10 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+    
+    <Style x:Key="ButtonStyle" TargetType="Button">
+        <Setter Property="Margin" Value="5"/>
+        <Setter Property="Height" Value="25"/>
+        <Setter Property="Width" Value="75" />
+        <Setter Property="Padding" Value="3"/>
+    </Style>
+</ResourceDictionary>
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/PreferencesView.xaml b/trunk/Pithos.Client.WPF/PreferencesView.xaml
new file mode 100644 (file)
index 0000000..de29ef9
--- /dev/null
@@ -0,0 +1,189 @@
+<Window x:Class="Pithos.Client.WPF.PreferencesView"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:tb="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification"
+        xmlns:cal="http://www.caliburnproject.org" Title="Pithos Preferences" Height="382" Width="445" WindowStartupLocation="CenterScreen" Background="#FFD4D0C8">
+    <Window.Resources>
+        <ResourceDictionary>
+        <ResourceDictionary.MergedDictionaries>
+            <ResourceDictionary Source="PithosStyles.xaml" />
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </Window.Resources>
+    
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="*"/>
+            <RowDefinition Height="Auto"/>
+        </Grid.RowDefinitions>
+
+        <tb:TaskbarIcon x:Name="PithosIcon"                           
+                        IconSource="{Binding StatusIcon}"
+                        ToolTipText="{Binding StatusMessage}"
+                        
+                        MenuActivation="LeftOrRightClick" 
+                        DoubleClickCommand="{Binding OpenPithosFolderCommand}">
+            <tb:TaskbarIcon.ContextMenu>
+                <ContextMenu x:Name="TaskbarMenu" >
+                    <MenuItem Header="Open PITHOS Folder" x:Name="OpenPithosFolder" cal:Message.Attach="OpenPithosFolder" />
+                    <MenuItem Header="Launch PITHOS Site"  x:Name="GoToSite" cal:Message.Attach="GoToSite" />
+                    <MenuItem Header="Recently Changed Files" x:Name="RecentFiles" ItemsSource="{Binding RecentFiles}">
+                            <MenuItem.ItemTemplate>
+                                <DataTemplate>
+                                    <TextBlock Text="{Binding FileName}"/>
+                                </DataTemplate>
+                            </MenuItem.ItemTemplate>
+                    </MenuItem>
+                    <Separator  />
+                    <MenuItem Header="{Binding UsageMessage}" x:Name="UsageMessage" />
+                    <Separator  />
+                    <MenuItem Header="{Binding StatusMessage}" x:Name="StatusMessage" />
+                    <Separator  />
+                    <MenuItem  Header="Pause Synching" x:Name="ToggleSynching" cal:Message.Attach="ToggleSynching"  />
+                    <Separator  />
+                    <MenuItem  Header="Preferences ..." x:Name="ShowPreferences" cal:Message.Attach="ShowPreferences"  />
+                    <Separator  />
+                    <MenuItem  Header="Exit" Name="ExitPithos" cal:Message.Attach="ExitPithos" />
+                </ContextMenu>
+            </tb:TaskbarIcon.ContextMenu>
+        </tb:TaskbarIcon>
+
+
+
+        <TabControl Grid.Row="0">            
+            <TabItem >
+                <TabItem.Header>
+                    <StackPanel>
+                        <Image Source="/Pithos.Client.WPF;component/Images/General.png" Stretch="Uniform" Height="32"/>
+                        <TextBlock Text="General"/>
+                    </StackPanel>
+                </TabItem.Header>
+                <GroupBox  Height="66" VerticalAlignment="Top" Name="groupBox1" Margin="10,5">
+                    <StackPanel>
+                        <CheckBox Content="Show Desktop Notifications" Height="16" Name="Settings_ShowDesktopNotifications" Margin="5,10,5,0" />
+                        <CheckBox Content="Start on System Startup" Height="16" Name="Settings_StartOnSystemStartup" Margin="5,5,5,0" />
+                    </StackPanel>
+                </GroupBox>
+            </TabItem>
+            <TabItem >
+                <TabItem.Header>
+                    <StackPanel>
+                        <Image Source="/Pithos.Client.WPF;component/Images/Accounts.png" Stretch="Uniform" Height="32"/>
+                        <TextBlock Text="Accounts"/>
+                    </StackPanel>
+                </TabItem.Header>
+                <StackPanel Orientation="Horizontal">
+                    <Grid Margin="5,10,5,5">
+                        <Grid.RowDefinitions>
+                            <RowDefinition Height="*"/>
+                            <RowDefinition Height="Auto"/>
+                        </Grid.RowDefinitions>
+                        <ListBox Name="Settings_Accounts" SelectedItem="{Binding CurrentAccount}" Grid.Row="0" DisplayMemberPath="AccountName" VerticalAlignment="Stretch" >
+                            
+                        </ListBox>
+                        <StackPanel Orientation="Horizontal" Grid.Row="1">
+                            <Button Name="AddAccount" Content="Add" Style="{StaticResource ButtonStyle}" Width="50"/>
+                            <Button Name="RemoveAccount" Content="Remove" Style="{StaticResource ButtonStyle}" Width="50"/>
+                        </StackPanel>
+                    </Grid>
+                        <GroupBox Header="Account" Padding="5" Margin="5" Height="137" HorizontalAlignment="Stretch" VerticalAlignment="Top" Width="272">
+                        <Grid>
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="Auto"/>
+                                <ColumnDefinition Width="91*"/>
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition />
+                            </Grid.RowDefinitions>
+                            <Label Content="Account" Grid.Column="0" Grid.Row="0" Margin="0,5" HorizontalAlignment="Left"/>
+                            <TextBox Name="CurrentAccount_AccountName" Grid.Column="1" Grid.Row="0" Margin="5"/>
+                            <Label Content="API Key" Grid.Column="0" Grid.Row="1" Margin="0,5" HorizontalAlignment="Left"/>
+                            <TextBox  Name="CurrentAccount_ApiKey" Grid.Column="1" Grid.Row="1" Margin="5"/>
+                            <Button Name="SelectSyncFolders" Content="Selective Sync" Width="Auto" HorizontalAlignment="Left" Style="{StaticResource ButtonStyle}" Grid.Column="1" Grid.Row="2"/>
+                        </Grid>
+                    </GroupBox>
+                </StackPanel>
+            </TabItem>
+            <TabItem >
+                <TabItem.Header>
+                    <StackPanel>
+                        <Image Source="/Pithos.Client.WPF;component/Images/Bandwidth.png" Stretch="Uniform" Height="32"/>
+                        <TextBlock Text="Bandwidth"/>
+                    </StackPanel>
+                </TabItem.Header>
+                <StackPanel>
+                    <GroupBox Header="Download Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
+                        <Grid />
+                    </GroupBox>
+                    <GroupBox Header="Upload Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
+                        <Grid />
+                    </GroupBox>
+                </StackPanel>
+            </TabItem>
+            <TabItem >
+                <TabItem.Header>
+                    <StackPanel>
+                        <Image Source="/Pithos.Client.WPF;component/Images/Network.png" Stretch="Uniform" Height="32"/>
+                        <TextBlock Text="Proxy"/>
+                    </StackPanel>
+                </TabItem.Header>
+                <GroupBox Header="Proxy Settings" Height="275"  Margin="10,5" VerticalAlignment="Top" Width="396">
+                    <Grid>
+                        <RadioButton Content="No Proxy" Margin="5,2,5,2" Height="16" VerticalAlignment="Top"/>
+                        <RadioButton Content="Use System Defaults" Margin="5,22,5,2" Height="16" VerticalAlignment="Top"/>
+                        <RadioButton Content="Manual" Margin="5,42,5,2" Height="16" VerticalAlignment="Top"/>
+                        <Label Content="Proxy Type" Height="28" HorizontalAlignment="Left" Margin="5,56,0,0" Name="label1" VerticalAlignment="Top" Target="{Binding}" />
+                        <ComboBox Height="23" HorizontalAlignment="Left" Margin="76,61,0,0" Name="Settings_ProxyType" VerticalAlignment="Top" Width="71">
+                            <ComboBoxItem Content="HTTP" IsSelected="True" />
+                            <ComboBoxItem Content="SOCKS4" />
+                            <ComboBoxItem Content="SOCKS5" />
+                        </ComboBox>
+                        <Label Content="Server" Height="28" HorizontalAlignment="Left" Margin="7,86,0,0" Name="label2" VerticalAlignment="Top" />
+                        <TextBox Height="23" HorizontalAlignment="Left" Margin="76,90,0,0" Name="Settings_ProxyServer" VerticalAlignment="Top" Width="162" />
+                        <TextBlock Height="23" HorizontalAlignment="Left" Margin="244,90,0,0" Name="textBlock1" Text=":" VerticalAlignment="Top" />
+                        <TextBox Height="23" HorizontalAlignment="Left" Margin="254,90,0,0" Name="Settings_ProxyPort" VerticalAlignment="Top" Width="65" />
+                        
+                        <GroupBox Height="109" HorizontalAlignment="Left" Margin="7,119,0,0" Name="groupBox2" VerticalAlignment="Top" Width="373" >
+                            <GroupBox.Header>
+                                <CheckBox Content="Proxy requires authentication" Height="16" VerticalAlignment="Top" Name="Settings_ProxyAuthentication" />
+                            </GroupBox.Header>
+                            <Grid>
+                                <Label Content="Username" Height="28" HorizontalAlignment="Left" Margin="0,6,0,0" Name="label3" VerticalAlignment="Top" />
+                                <Label Content="Password" Height="28" HorizontalAlignment="Left" Margin="0,32,0,0" Name="label4" VerticalAlignment="Top" />
+                                <TextBox Height="23" HorizontalAlignment="Left" Margin="65,6,0,0" Name="Settings_ProxyUsername" VerticalAlignment="Top" Width="157" />
+                                <TextBox Height="23" HorizontalAlignment="Left" Margin="65,37,0,0" Name="Settings_ProxyPassword" VerticalAlignment="Top" Width="157" />
+                            </Grid>
+                        </GroupBox>
+                    </Grid>
+                </GroupBox>
+            </TabItem>
+            <TabItem >
+                <TabItem.Header>
+                    <StackPanel>
+                        <Image Source="/Pithos.Client.WPF;component/Images/Advanced.png" Stretch="Uniform" Height="32"/>
+                        <TextBlock Text="Advanced"/>
+                    </StackPanel>
+                </TabItem.Header>
+                <StackPanel>
+                
+                <GroupBox Header="Pithos Folder" Height="60" Name="groupBox3" Margin="5" VerticalAlignment="Top">
+                    <Grid>
+                        <TextBox Height="23" HorizontalAlignment="Left" Margin="6,6,0,0" Name="Settings_PithosPath"  VerticalAlignment="Top" Width="247" />
+                        <Button Content="Move" Height="23" HorizontalAlignment="Left" Margin="259,6,0,0" Name="ChangePithosFolder" VerticalAlignment="Top" Width="75" />
+                    </Grid>
+                </GroupBox>
+                    <CheckBox Content="Activate Shell Extensions" Height="16" HorizontalAlignment="Left" Margin="5" Name="ExtensionsActivated" VerticalAlignment="Top" />
+                </StackPanel>
+            </TabItem>
+        </TabControl>
+
+        <StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right">
+            <Button Name="SaveChanges" Content="OK" Click="SaveChanges_Click" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/>
+            <Button Name="RejectChanges" Content="Cancel" Click="RejectChanges_Click" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/>
+            <Button Name="ApplyChanges" Content="Apply" Style="{StaticResource ButtonStyle}" />
+        </StackPanel>
+    </Grid>
+</Window>
diff --git a/trunk/Pithos.Client.WPF/PreferencesView.xaml.cs b/trunk/Pithos.Client.WPF/PreferencesView.xaml.cs
new file mode 100644 (file)
index 0000000..a2741fa
--- /dev/null
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace Pithos.Client.WPF
+{
+    /// <summary>
+    /// Interaction logic for PreferencesView.xaml
+    /// </summary>
+    public partial class PreferencesView : Window
+    {
+        public PreferencesView()
+        {
+            InitializeComponent();
+        }
+
+        private void SaveChanges_Click(object sender, RoutedEventArgs e)
+        {
+            this.Hide();
+        }
+
+        private void RejectChanges_Click(object sender, RoutedEventArgs e)
+        {
+            this.Hide();
+        }
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/PreferencesViewModel.cs b/trunk/Pithos.Client.WPF/PreferencesViewModel.cs
new file mode 100644 (file)
index 0000000..35ebe5c
--- /dev/null
@@ -0,0 +1,285 @@
+// -----------------------------------------------------------------------
+// <copyright file="PreferencesViewModel.cs" company="Microsoft">
+// TODO: Update copyright text.
+// </copyright>
+// -----------------------------------------------------------------------
+
+using System.Collections;
+using System.ComponentModel.Composition;
+using System.Diagnostics;
+using System.IO;
+using System.IO.IsolatedStorage;
+using System.Runtime.Serialization;
+using System.Windows;
+using System.Windows.Forms;
+using Caliburn.Micro;
+using Pithos.Client.WPF.Configuration;
+using Pithos.Core;
+using Pithos.Interfaces;
+using Pithos.ShellExtensions;
+using Screen = Caliburn.Micro.Screen;
+
+namespace Pithos.Client.WPF
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Linq;
+    using System.Text;
+
+    /// <summary>
+    /// TODO: Update summary.
+    /// </summary>
+    [Export(typeof(IShell))]
+    public class PreferencesViewModel : Screen, IShell
+    {
+        
+        private IStatusChecker _statusChecker;
+
+
+        public IPithosSettings Settings { get; set; }
+
+
+        public PithosMonitor Monitor { get; private set; }
+
+
+        ShellExtensionController _extensionController=new ShellExtensionController();
+
+        [ImportingConstructor]
+        public PreferencesViewModel(IStatusChecker statusChecker, IPithosSettings settings, PithosMonitor monitor)
+        {
+            DisplayName = "Pithos Preferences";
+            _statusChecker = statusChecker;
+            Settings=settings;
+            Monitor=monitor;
+
+            OpenPithosFolderCommand=new PithosCommand(OpenPithosFolder);
+
+            
+
+            UsageMessage = "Using 15% of 50 GB";
+            RecentFiles.AddRange(new[]
+                                     {
+                                      new FileEntry{FileName="Moo",FullPath=@"e:\Pithos\moo"}   ,
+                                      new FileEntry{FileName="Mee",FullPath=@"e:\Pithos\mee"}   
+                                     });
+            StatusMessage = "In Synch";
+            UpdateStatus();
+        }
+        protected override void OnViewAttached(object view, object context)
+        {
+            var window = (Window)view;
+            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
+            window.ShowInTaskbar = false;
+
+            base.OnViewAttached(view, context);
+        }
+
+
+        protected override void OnViewLoaded(object view)
+        {
+            var window = (Window)view;
+            window.Hide();
+
+            base.OnViewLoaded(view);
+        }
+
+
+        #region Status Properties
+
+        private string _statusMessage;
+        public string StatusMessage
+        {
+            get { return _statusMessage; }
+            set
+            {
+                _statusMessage = value;
+                NotifyOfPropertyChange(() => StatusMessage);
+            }
+        }
+
+        private string _usageMessage;
+        public string UsageMessage
+        {
+            get { return _usageMessage; }
+            set
+            {
+                _usageMessage = value;
+                NotifyOfPropertyChange(() => UsageMessage);
+            }
+        }
+
+        private readonly IObservableCollection<FileEntry> _recentFiles = new BindableCollection<FileEntry>();
+        public IObservableCollection<FileEntry> RecentFiles
+        {
+            get { return _recentFiles; }
+        }
+
+
+        private string _statusIcon;
+        public string StatusIcon
+        {
+            get { return _statusIcon; }
+            set
+            {
+                _statusIcon = value;
+                NotifyOfPropertyChange(()=>StatusIcon);
+            }
+        }
+
+        #endregion
+
+        //public PithosSettings Settings { get; set; }
+
+        #region Commands
+        
+
+        public void ShowPreferences()
+        {
+            Settings.Reload();
+
+            var window = (Window)this.GetView();
+            window.Show();
+        }
+
+
+        public PithosCommand OpenPithosFolderCommand { get; private set; }
+
+        public void OpenPithosFolder()
+        {
+            Process.Start(Settings.PithosPath);
+        }
+
+        public void GoToSite()
+        {
+
+        }
+
+        public void ToggleSynching()
+        {
+
+        }
+
+        public void SaveChanges()
+        {
+            DoSave();
+            /*var window = (Window)GetView();
+            window.Hide();*/
+        }
+
+        public void RejectChanges()
+        {
+            Settings.Reload();
+           /* var window = (Window)GetView();
+            window.Hide();*/
+        }
+
+        public void ApplyChanges()
+        {
+            DoSave();
+        }
+
+        private void DoSave()
+        {
+            Settings.Save();
+            Monitor.Start();
+        }
+
+        public void ChangePithosFolder()
+        {
+            var browser = new FolderBrowserDialog();
+            browser.SelectedPath = Settings.PithosPath;
+            var result = browser.ShowDialog((IWin32Window)GetView());
+            if (result == DialogResult.OK)
+            {
+                var newPath = browser.SelectedPath;
+                Directory.Move(Settings.PithosPath, newPath);
+                Settings.PithosPath = newPath;
+                Settings.Save();
+                NotifyOfPropertyChange(() => Settings);
+            }
+        }
+
+        public void ExitPithos()
+        {
+            Monitor.Stop();
+            this.TryClose();            
+        }
+
+        #endregion
+
+        private AccountSettings _currentAccount;
+        public AccountSettings CurrentAccount
+        {
+            get { return _currentAccount; }
+            set
+            {
+                _currentAccount = value;
+                NotifyOfPropertyChange(()=>CurrentAccount);
+            }
+        }
+
+
+        private Dictionary<PithosStatus, StatusInfo> iconNames = new List<StatusInfo>
+            {
+                new StatusInfo(PithosStatus.InSynch, "All files up to date", "TrayInSynch"),
+                new StatusInfo(PithosStatus.Synching, "Synching Files", "TraySynching")
+            }.ToDictionary(s => s.Status);
+
+        public void UpdateStatus()
+        {
+            var pithosStatus = _statusChecker.GetPithosStatus();
+
+
+            if (iconNames.ContainsKey(pithosStatus))
+            {
+                var info = iconNames[pithosStatus];
+                StatusIcon = String.Format(@"Images/{0}.ico",info.IconName);
+                StatusMessage= String.Format("Pithos 1.0\r\n{0}", info.StatusText);                
+            }
+            if (!String.IsNullOrWhiteSpace(Settings.UserName) &&
+                !String.IsNullOrWhiteSpace(Settings.ApiKey))
+                Monitor.Start();
+        }
+
+        
+        public bool ExtensionsActivated
+        {
+            get { return Settings.ExtensionsActivated; }
+            set
+            {
+                if (Settings.ExtensionsActivated == value)
+                    return;                
+                
+                Settings.ExtensionsActivated = value;
+
+                if(value)
+                    _extensionController.RegisterExtensions();
+                else
+                {
+                    _extensionController.UnregisterExtensions();
+                }
+                NotifyOfPropertyChange(()=>ExtensionsActivated);
+            }
+        }
+
+        /* private void UnregisterExtensions()
+        {
+            using (var installer = new ProjectInstaller())
+            {
+                IDictionary state = ShellExtensionController.LoadState();
+                installer.Uninstall(state);
+            }
+        }
+
+        private void RegisterExtensions()
+        {
+            using (var installer = new ProjectInstaller())
+            {
+                IDictionary state = new Dictionary<object, object>();
+                installer.Install(state);
+                ShellExtensionController.SaveState(state);
+
+            }
+        }*/
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/Properties/AssemblyInfo.cs b/trunk/Pithos.Client.WPF/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..016ff4d
--- /dev/null
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// 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("Pithos.Client.WPF")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Pithos.Client.WPF")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
+[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)]
+
+//In order to begin building localizable applications, set 
+//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
+//inside a <PropertyGroup>.  For example, if you are using US english
+//in your source files, set the <UICulture> to en-US.  Then uncomment
+//the NeutralResourceLanguage attribute below.  Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+    //(used if a resource is not found in the page, 
+    // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+    //(used if a resource is not found in the page, 
+    // app, or any theme specific resource dictionaries)
+)]
+
+
+// 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 Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/trunk/Pithos.Client.WPF/Properties/Resources.Designer.cs b/trunk/Pithos.Client.WPF/Properties/Resources.Designer.cs
new file mode 100644 (file)
index 0000000..9aa9704
--- /dev/null
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.235
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Pithos.Client.WPF.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Pithos.Client.WPF.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/Properties/Resources.resx b/trunk/Pithos.Client.WPF/Properties/Resources.resx
new file mode 100644 (file)
index 0000000..af7dbeb
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/Properties/Settings.Designer.cs b/trunk/Pithos.Client.WPF/Properties/Settings.Designer.cs
new file mode 100644 (file)
index 0000000..2bafba4
--- /dev/null
@@ -0,0 +1,202 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.235
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Pithos.Client.WPF.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("e:\\Pithos")]
+        public string PithosPath {
+            get {
+                return ((string)(this["PithosPath"]));
+            }
+            set {
+                this["PithosPath"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("C:\\Program Files\\Common Files\\TortoiseOverlays\\icons\\XPStyle")]
+        public string IconPath {
+            get {
+                return ((string)(this["IconPath"]));
+            }
+            set {
+                this["IconPath"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ProxyServer {
+            get {
+                return ((string)(this["ProxyServer"]));
+            }
+            set {
+                this["ProxyServer"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ProxyPort {
+            get {
+                return ((string)(this["ProxyPort"]));
+            }
+            set {
+                this["ProxyPort"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ProxyType {
+            get {
+                return ((string)(this["ProxyType"]));
+            }
+            set {
+                this["ProxyType"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ProxyUsername {
+            get {
+                return ((string)(this["ProxyUsername"]));
+            }
+            set {
+                this["ProxyUsername"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("")]
+        public string ProxyPassword {
+            get {
+                return ((string)(this["ProxyPassword"]));
+            }
+            set {
+                this["ProxyPassword"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]
+        public bool ProxyAuthentication {
+            get {
+                return ((bool)(this["ProxyAuthentication"]));
+            }
+            set {
+                this["ProxyAuthentication"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool ExtensionsActivated {
+            get {
+                return ((bool)(this["ExtensionsActivated"]));
+            }
+            set {
+                this["ExtensionsActivated"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("pkanavos")]
+        public string UserName {
+            get {
+                return ((string)(this["UserName"]));
+            }
+            set {
+                this["UserName"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("9d3cb7b231e96f72ebe96af1c6cd5112")]
+        public string ApiKey {
+            get {
+                return ((string)(this["ApiKey"]));
+            }
+            set {
+                this["ApiKey"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute(@"
+          <ArrayOfAccountSettings xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
+            <AccountSettings>
+              <AccountName>pkanavos</AccountName>
+              <ApiKey>9d3cb7b231e96f72ebe96af1c6cd5112</ApiKey>
+              <SelectiveFolders />
+            </AccountSettings>
+          </ArrayOfAccountSettings>
+        ")]
+        public global::Pithos.Interfaces.AccountsCollection Accounts {
+            get {
+                return ((global::Pithos.Interfaces.AccountsCollection)(this["Accounts"]));
+            }
+            set {
+                this["Accounts"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool ShowDesktopNotifications {
+            get {
+                return ((bool)(this["ShowDesktopNotifications"]));
+            }
+            set {
+                this["ShowDesktopNotifications"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool StartOnSystemStartup {
+            get {
+                return ((bool)(this["StartOnSystemStartup"]));
+            }
+            set {
+                this["StartOnSystemStartup"] = value;
+            }
+        }
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/Properties/Settings.settings b/trunk/Pithos.Client.WPF/Properties/Settings.settings
new file mode 100644 (file)
index 0000000..64f9400
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Pithos.Client.WPF.Properties" GeneratedClassName="Settings">
+  <Profiles />
+  <Settings>
+    <Setting Name="PithosPath" Type="System.String" Scope="User">
+      <Value Profile="(Default)">e:\Pithos</Value>
+    </Setting>
+    <Setting Name="IconPath" Type="System.String" Scope="User">
+      <Value Profile="(Default)">C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</Value>
+    </Setting>
+    <Setting Name="ProxyServer" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ProxyPort" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ProxyType" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ProxyUsername" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ProxyPassword" Type="System.String" Scope="User">
+      <Value Profile="(Default)" />
+    </Setting>
+    <Setting Name="ProxyAuthentication" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">False</Value>
+    </Setting>
+    <Setting Name="ExtensionsActivated" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
+    <Setting Name="UserName" Type="System.String" Scope="User">
+      <Value Profile="(Default)">pkanavos</Value>
+    </Setting>
+    <Setting Name="ApiKey" Type="System.String" Scope="User">
+      <Value Profile="(Default)">9d3cb7b231e96f72ebe96af1c6cd5112</Value>
+    </Setting>
+    <Setting Name="Accounts" Type="Pithos.Interfaces.AccountsCollection" Scope="User">
+      <Value Profile="(Default)">
+          &lt;ArrayOfAccountSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
+            &lt;AccountSettings&gt;
+              &lt;AccountName&gt;pkanavos&lt;/AccountName&gt;
+              &lt;ApiKey&gt;9d3cb7b231e96f72ebe96af1c6cd5112&lt;/ApiKey&gt;
+              &lt;SelectiveFolders /&gt;
+            &lt;/AccountSettings&gt;
+          &lt;/ArrayOfAccountSettings&gt;
+        </Value>
+    </Setting>
+    <Setting Name="ShowDesktopNotifications" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
+    <Setting Name="StartOnSystemStartup" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
+  </Settings>
+</SettingsFile>
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/ShellExtensionController.cs b/trunk/Pithos.Client.WPF/ShellExtensionController.cs
new file mode 100644 (file)
index 0000000..fee07da
--- /dev/null
@@ -0,0 +1,74 @@
+// -----------------------------------------------------------------------
+// <copyright file="ShellExtensionController.cs" company="Microsoft">
+// TODO: Update copyright text.
+// </copyright>
+// -----------------------------------------------------------------------
+
+using System.Collections;
+using System.IO;
+using System.IO.IsolatedStorage;
+using System.Runtime.Serialization;
+using Pithos.ShellExtensions;
+
+namespace Pithos.Client.WPF
+{
+    using System;
+    using System.Collections.Generic;
+    using System.Linq;
+    using System.Text;
+
+    /// <summary>
+    /// TODO: Update summary.
+    /// </summary>
+    public class ShellExtensionController
+    {
+        #region Shell Extensions
+        public void UnregisterExtensions()
+        {
+            using (var installer = new ProjectInstaller())
+            {
+                IDictionary state = LoadState();
+                installer.Uninstall(state);
+            }
+        }
+
+        public void RegisterExtensions()
+        {
+            using (var installer = new ProjectInstaller())
+            {
+                IDictionary state = new Dictionary<object, object>();
+                installer.Install(state);
+                SaveState(state);
+
+            }
+        }
+
+        private static void SaveState(IDictionary state)
+        {
+            using (var store = IsolatedStorageFile.GetUserStoreForApplication())
+            using (var file = store.CreateFile("PithosManualInstallFile"))
+            {
+                var serializer = new NetDataContractSerializer();
+                serializer.Serialize(file, state);
+            }
+        }
+
+        private static IDictionary LoadState()
+        {
+            using (var store = IsolatedStorageFile.GetUserStoreForApplication())
+            {
+                if (!store.FileExists("PithosManualInstallFile"))
+                    return new Dictionary<object, object>();
+
+                using (var file = store.OpenFile("PithosManualInstallFile", FileMode.Open))
+                {
+                    var serializer = new NetDataContractSerializer();
+                    var state = serializer.Deserialize(file);
+                    return (IDictionary)state;
+                }
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/ShellView.xaml b/trunk/Pithos.Client.WPF/ShellView.xaml
new file mode 100644 (file)
index 0000000..e740bb2
--- /dev/null
@@ -0,0 +1,53 @@
+<Window x:Class="Pithos.Client.WPF.ShellView"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:tb="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification" 
+        xmlns:cal="http://www.caliburnproject.org"
+         >
+
+    <Grid Background="White">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="*"/>
+            <RowDefinition Height="Auto"/>
+        </Grid.RowDefinitions>
+            <tb:TaskbarIcon x:Name="PithosIcon"
+                        IconSource="/Images/Tray.ico"
+                        ToolTipText="All Files in Sync"
+                        MenuActivation="LeftOrRightClick">
+            <tb:TaskbarIcon.ContextMenu>
+
+                <ContextMenu x:Name="TaskbarMenu"      >
+                    <MenuItem Header="Open PITHOS Folder" x:Name="OpenPithosFolder" cal:Message.Attach="OpenPithosFolder"/>
+                    <MenuItem Header="Launch PITHOS Site"  x:Name="GoToSite" cal:Message.Attach="GoToSite"/>
+                    <MenuItem Header="Recently Changed Files" >
+                        <MenuItem x:Name="RecentFiles"/>
+                    </MenuItem>
+                    <Separator  />
+                    <MenuItem Header="15% of 50GB used" x:Name="UsageMessage" />
+                    <Separator  />
+                    <MenuItem Header="All Files Up to Date" x:Name="StatusMessage" />
+                    <Separator  />
+                    <MenuItem  Header="Pause Synching" x:Name="ToggleSynching" cal:Message.Attach="ToggleSynching"/>
+                    <Separator  />
+                    <MenuItem  Header="Preferences ..." x:Name="ShowPreferences" cal:Message.Attach="ShowPreferences"/>
+                    <Separator  />
+                    <MenuItem  Header="Exit" Name="ExitPithos" cal:Message.Attach="ExitPithos"/>
+                </ContextMenu>
+            </tb:TaskbarIcon.ContextMenu>
+        </tb:TaskbarIcon>
+
+
+        <TabControl Grid.Row="0">
+            <TabItem Header="General"/>
+            <TabItem Header="Accounts"/>
+            <TabItem Header="Network"/>
+            <TabItem Header="Advanced"/>
+        </TabControl>
+        
+        <StackPanel Orientation="Horizontal" Grid.Row="1">
+            <Button Name="SaveChanges" Content="OK" />
+            <Button Name="RejectChanges" Content="Cancel"/>
+        </StackPanel>
+    </Grid>
+
+</Window>
diff --git a/trunk/Pithos.Client.WPF/ShellViewModel.cs b/trunk/Pithos.Client.WPF/ShellViewModel.cs
new file mode 100644 (file)
index 0000000..2d10b34
--- /dev/null
@@ -0,0 +1,100 @@
+using System.Windows;
+using System.Windows.Controls;
+using Caliburn.Micro;
+
+namespace Pithos.Client.WPF {
+    using System.ComponentModel.Composition;
+
+    [Export(typeof(IShell))]
+    public class ShellViewModel : ViewAware, IShell
+    {
+       
+       
+        protected override void OnViewAttached(object view, object context)
+        {
+            var window = (Window)view;            
+            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
+            window.ShowInTaskbar = false;
+            
+            base.OnViewAttached(view, context);
+        }
+
+      
+        protected override void OnViewLoaded(object view)
+        {
+            var window = (Window) view;
+            window.Hide();
+            
+            base.OnViewLoaded(view);
+        }
+
+
+        #region Status Properties
+        
+        private string _statusMessage;
+        public string StatusMessage
+        {
+            get { return _statusMessage; }
+            set
+            {
+                _statusMessage = value;
+                NotifyOfPropertyChange(()=>StatusMessage);
+            }
+        }
+
+        private string _usageMessage;
+        public string UsageMessage
+        {
+            get { return _usageMessage; }
+            set
+            {
+                _usageMessage = value;
+                NotifyOfPropertyChange(()=>UsageMessage);
+            }
+        }
+
+        private readonly IObservableCollection<FileEntry> _recentFiles=new BindableCollection<FileEntry>();
+        public IObservableCollection<FileEntry> RecentFiles
+        {
+            get { return _recentFiles; }            
+        }
+
+        #endregion
+
+
+        public void ShowPreferences()
+        {
+            var window = (Window) this.GetView();
+            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
+            window.Show();            
+        }
+
+        public void OpenPithosFolder()
+        {
+            
+        }
+
+        public void GoToSite()
+        {
+
+        }
+
+        public void ToggleSynching()
+        {
+            
+        }
+
+        public void SaveChanges()
+        {
+            var window = (Window)GetView();
+            window.Hide();            
+        }
+
+        public void RejectChanges()
+        {
+            var window=(Window)GetView();            
+            window.Hide();
+        }
+
+    }
+}
diff --git a/trunk/Pithos.Client.WPF/WhistlerBlue.xaml b/trunk/Pithos.Client.WPF/WhistlerBlue.xaml
new file mode 100644 (file)
index 0000000..3149770
--- /dev/null
@@ -0,0 +1,4032 @@
+<!--
+// (c) Copyright Microsoft Corporation.
+// This source is subject to Microsoft Public License (Ms-PL).
+// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
+// All other rights reserved.
+-->
+
+<ResourceDictionary
+  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+  mc:Ignorable="d"
+  xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
+
+   
+        <!-- Color Palette -->
+        <SolidColorBrush x:Key="OutsideFontColor" Color="#FF000000"/>
+        <SolidColorBrush x:Key="ButtonFontColor" Color="#FF042271"/>
+        <Color x:Key="Focus">#FF04CCFF</Color>
+        <Color x:Key="HyperlinkFocus">#FF2B54BA</Color>
+        <Color x:Key="Calendar">#FF0066CC</Color>
+        <Color x:Key="PressStroke1">#FF1D415C</Color>
+        <Color x:Key="PressStroke2">#FF2C628B</Color>
+        <Color x:Key="TabStroke">#FF4F8BB9</Color>
+        <Color x:Key="DataSortArrow">#3F2C628B</Color>
+        <!--PressStroke2, 25%-->
+        <Color x:Key="DropLocate">#FF6392C8</Color>
+        <Color x:Key="TreeviewArrowNorm">#FF76D5FD</Color>
+        <Color x:Key="TreeviewArrowOver">#FFC1EFF8</Color>
+        <Color x:Key="TreeviewArrowCheck">#FF6380EE</Color>
+        <Color x:Key="ExpandArrowStroke">#FF688DC4</Color>
+        <Color x:Key="Arrow">#FF425080</Color>
+        <Color x:Key="Arrow2">#FF7682E4</Color>
+        <Color x:Key="TextBkgSelection">#FF309AFF</Color>
+        <Color x:Key="TextboxOver1">#FF5296BD</Color>
+        <Color x:Key="TextboxOver2">#FFC2E4F6</Color>
+        <Color x:Key="TextboxPress1">#FF3B79AC</Color>
+        <Color x:Key="TextboxPress2">#FFB2DBED</Color>
+        <Color x:Key="ItemOver1">#FFF4FAFD</Color>
+        <Color x:Key="ItemOver2">#FFCFEDFD</Color>
+        <Color x:Key="ItemOverStroke">#FFD8F0FA</Color>
+        <Color x:Key="ItemSelectStroke">#FF98DDFB</Color>
+        <Color x:Key="Over1">#FFE2F5FF</Color>
+        <Color x:Key="Over2">#FFC0E7FC</Color>
+        <Color x:Key="Over3">#FF9EDDFF</Color>
+        <Color x:Key="Press1">#FF759FB6</Color>
+        <Color x:Key="Press2">#FFB6E0F6</Color>
+        <Color x:Key="Press3">#FF9DD5F4</Color>
+        <Color x:Key="PressHighlight">#FF387599</Color>
+        <Color x:Key="ButtonHighlightMid">#0095D9FF</Color>
+        <Color x:Key="ButtonHighlightMid2">#9935A6E6</Color>
+        <!--60%-->
+        <Color x:Key="ButtonHighlightMid3">#A535A6E6</Color>
+        <!--65%-->
+        <Color x:Key="RadioIcon1">#FF90D5E5</Color>
+        <Color x:Key="RadioIcon2">#FF28A2D1</Color>
+        <Color x:Key="RadioIcon3">#FF1898D1</Color>
+        <Color x:Key="RadioIcon4">#FF0F83C7</Color>
+        <Color x:Key="RadioIconOver1">#FF1EBEFF</Color>
+        <Color x:Key="RadioIconOver2">#FF13A2F3</Color>
+        <Color x:Key="RadioIconPress1">#99759FB6</Color>
+        <!--Press1, 60%-->
+        <Color x:Key="RadioIconPress2">#FF4B8DAF</Color>
+        <Color x:Key="RadioStroke">#FF275674</Color>
+        <Color x:Key="CheckInnerOver">#FF79C6F9</Color>
+        <Color x:Key="CheckInnerOver2">#FFAFDEFD</Color>
+        <Color x:Key="CheckInnerPress">#FF5EB6F7</Color>
+        <Color x:Key="CheckInnerPress2">#FF90CFFC</Color>
+        <Color x:Key="CheckOutterOver">#FF5989A5</Color>
+        <Color x:Key="CheckOutterOver2">#FFDEF9FA</Color>
+        <Color x:Key="ThumbPress1">#FF6CBBE5</Color>
+        <Color x:Key="ThumbPress2">#FF50A1CC</Color>
+        <Color x:Key="ExpanderOver1">#FFB1E7FE</Color>
+        <Color x:Key="ExpanderOver2">#FFEAFFFF</Color>
+        <Color x:Key="ExpanderOver3">#A56EB4F6</Color>
+        <Color x:Key="ExpanderMid">#009DD5F4</Color>
+        <!--Press3, 0%-->
+        <Color x:Key="ExpanderPress1">#FF80CEFF</Color>
+        <Color x:Key="ExpanderPress2">#FF2D84CF</Color>
+        <Color x:Key="ThumbDivetOver">#E5387599</Color>
+        <!--PressHighlight, 20%-->
+        <Color x:Key="ThumbDivetFill1">#199DD5F4</Color>
+        <!--Press3, 10%-->
+        <Color x:Key="ThumbDivetFill2">#33387599</Color>
+        <!--PressHighlight, 20%-->
+        <!-- End Color Palette-->
+
+
+        <!-- Communal Static Resources -->
+        <SolidColorBrush x:Key="btnFocus" Color="{StaticResource Focus}"/>
+        <SolidColorBrush x:Key="btnPressStroke1" Color="{StaticResource PressStroke1}"/>
+        <SolidColorBrush x:Key="btnPressStroke2" Color="{StaticResource PressStroke2}"/>
+
+        <LinearGradientBrush x:Key="btnPressBorder" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource PressStroke1}" Offset="0"/>
+            <GradientStop Color="{StaticResource PressStroke2}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <SolidColorBrush x:Key="hyperlinkPress" Color="{StaticResource HyperlinkFocus}"/>
+        <SolidColorBrush x:Key="calendarBtnFill" Color="{StaticResource Over2}"/>
+        <SolidColorBrush x:Key="calendarTodayStroke" Color="{StaticResource Calendar}"/>
+        <SolidColorBrush x:Key="treeviewArrowUnchecked" Color="{StaticResource TreeviewArrowNorm}"/>
+        <SolidColorBrush x:Key="treeviewArrowHover" Color="{StaticResource TreeviewArrowOver}"/>
+        <SolidColorBrush x:Key="treeviewArrowChecked" Color="{StaticResource TreeviewArrowCheck}"/>
+
+        <SolidColorBrush x:Key="TextBackgroundSelection" Color="{StaticResource TextBkgSelection}"/>
+        <SolidColorBrush x:Key="TextBoxOverBrush" Color="{StaticResource TextboxOver1}"/>
+        <SolidColorBrush x:Key="TextBoxPressBrush" Color="{StaticResource TextboxPress1}"/>
+
+        <LinearGradientBrush x:Key="TextBoxOver" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource TextboxOver1}" Offset="0"/>
+            <GradientStop Color="{StaticResource TextboxOver2}" Offset="0.355"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="TextBoxFocus" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource TextboxPress1}" Offset="0"/>
+            <GradientStop Color="{StaticResource TextboxPress2}" Offset="0.355"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="TextBoxNorm" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="#FFABAEB3" Offset="0"/>
+            <GradientStop Color="#FFE2E8EE" Offset="0.355"/>
+        </LinearGradientBrush>
+
+        <LinearGradientBrush x:Key="grayGradient" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="#FFFFFFFF" Offset="0"/>
+            <GradientStop Color="#FFEDEDED" Offset="0.171"/>
+            <GradientStop Color="#FFE7E7E7" Offset="0.5"/>
+            <GradientStop Color="#FFDCDCDC" Offset="0.51"/>
+            <GradientStop Color="#FFEAEBEC" Offset="1"/>
+        </LinearGradientBrush>
+
+        <SolidColorBrush x:Key="hoverStroke" Color="{StaticResource ItemOverStroke}"/>
+        <SolidColorBrush x:Key="selectedStroke" Color="{StaticResource ItemSelectStroke}"/>
+
+        <LinearGradientBrush x:Key="hoverGradient" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource ItemOver1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource ItemOver2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="hoverGradientVertical" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource ItemOver1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource ItemOver2}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <LinearGradientBrush x:Key="BtnOverFill" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.509"/>
+            <GradientStop Color="{StaticResource Over3}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="BtnPressFill" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource Press1}" Offset="0"/>
+            <GradientStop Color="{StaticResource Press2}" Offset="0.152"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Press3}" Offset="0.509"/>
+        </LinearGradientBrush>
+
+        <!-- standard button specific resources -->
+        <LinearGradientBrush x:Key="btnOverFillHighlight" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource ButtonHighlightMid2}" Offset="0"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.101"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.899"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="btnPressFillHighlight" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource PressHighlight}" Offset="0"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid3}" Offset="0.037"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.143"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.857"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid3}" Offset="0.963"/>
+            <GradientStop Color="{StaticResource PressHighlight}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- Radio/Checkbox specific resources -->
+        <SolidColorBrush x:Key="checkOverStroke" Color="{StaticResource CheckOutterOver}"/>
+        <SolidColorBrush x:Key="checkOverFill" Color="{StaticResource CheckOutterOver2}"/>
+        <SolidColorBrush x:Key="checkPressFill" Color="{StaticResource TextboxOver2}"/>
+        <SolidColorBrush x:Key="checkInnerOverFill" Color="{StaticResource CheckInnerOver2}"/>
+        <SolidColorBrush x:Key="checkInnerPressFill" Color="{StaticResource CheckInnerPress2}"/>
+        <SolidColorBrush x:Key="checkIconStroke" Color="{StaticResource Arrow}"/>
+        <SolidColorBrush x:Key="radioIconStroke" Color="{StaticResource RadioStroke}"/>
+
+        <LinearGradientBrush x:Key="radioIconFill" EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+            <GradientStop Color="{StaticResource RadioIcon1}" Offset="0"/>
+            <GradientStop Color="{StaticResource RadioIcon2}" Offset="0.179"/>
+            <GradientStop Color="{StaticResource RadioIcon3}" Offset="0.496"/>
+            <GradientStop Color="{StaticResource RadioIcon4}" Offset="0.812"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="radioIconFillOver" EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+            <GradientStop Color="{StaticResource Over2}" Offset="0"/>
+            <GradientStop Color="{StaticResource Focus}" Offset="0.179"/>
+            <GradientStop Color="{StaticResource RadioIconOver1}" Offset="0.496"/>
+            <GradientStop Color="{StaticResource RadioIconOver2}" Offset="0.812"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="radioIconFillPress" EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+            <GradientStop Color="{StaticResource RadioIconPress1}" Offset="0"/>
+            <GradientStop Color="{StaticResource RadioIconPress2}" Offset="0.317"/>
+            <GradientStop Color="{StaticResource PressHighlight}" Offset="0.504"/>
+            <GradientStop Color="{StaticResource PressStroke2}" Offset="0.817"/>
+        </LinearGradientBrush>
+
+        <LinearGradientBrush x:Key="checkInnerOverStroke" EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+            <GradientStop Color="{StaticResource CheckInnerOver}" Offset="0"/>
+            <GradientStop Color="{StaticResource ItemOver2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="checkInnerPressStroke" EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+            <GradientStop Color="{StaticResource CheckInnerPress}" Offset="0"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- slider specific resources -->
+        <LinearGradientBrush x:Key="ThumbOver" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="#FFFFFFFF" Offset="0"/>
+            <GradientStop Color="{StaticResource Over1}" Offset="0.484"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.493"/>
+            <GradientStop Color="{StaticResource Over3}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ThumbPress" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource ItemOver1}" Offset="0"/>
+            <GradientStop Color="{StaticResource Press3}" Offset="0.576"/>
+            <GradientStop Color="{StaticResource ThumbPress1}" Offset="0.581"/>
+            <GradientStop Color="{StaticResource ThumbPress2}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- datagrid specific resources -->
+        <SolidColorBrush x:Key="HeaderSeparator" Color="#FFD7D5D8" />
+        <SolidColorBrush x:Key="GridBorder" Color="#FFD6D7D6" />
+
+        <SolidColorBrush x:Key="dropLocator" Color="{StaticResource DropLocate}" />
+        <LinearGradientBrush x:Key="sortArrow" EndPoint="0.725,0.832" StartPoint="0.275,0.168">
+            <GradientStop Color="{StaticResource PressStroke2}"/>
+            <GradientStop Color="{StaticResource DataSortArrow}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- combobox/datepicker/numericupdown specific resources -->
+        <LinearGradientBrush x:Key="ComboTogglePressHighlight" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource PressHighlight}" Offset="0"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid3}" Offset="0.088"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.221"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid}" Offset="0.779"/>
+            <GradientStop Color="{StaticResource ButtonHighlightMid3}" Offset="0.912"/>
+            <GradientStop Color="{StaticResource PressHighlight}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- expander specific resources -->
+        <SolidColorBrush x:Key="expanderArrowStroke" Color="{StaticResource ExpandArrowStroke}"/>
+
+        <LinearGradientBrush x:Key="ExpanderArrowHoverFill1" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="{StaticResource ItemOver1}" Offset="0"/>
+            <GradientStop Color="{StaticResource ExpanderOver1}" Offset="0.52"/>
+            <GradientStop Color="{StaticResource Over3}" Offset="0.521"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.78"/>
+            <GradientStop Color="{StaticResource ExpanderOver2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ExpanderArrowHoverFill2" EndPoint="1,0" StartPoint="0,0">
+            <GradientStop Color="{StaticResource ExpanderOver3}" Offset="0"/>
+            <GradientStop Color="{StaticResource ExpanderMid}" Offset="0.346"/>
+            <GradientStop Color="{StaticResource ExpanderMid}" Offset="0.696"/>
+            <GradientStop Color="{StaticResource ExpanderOver3}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ExpanderArrowHoverFill3" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="#B9FFFFFF" Offset="0"/>
+            <GradientStop Color="#33FFFFFF" Offset="0.51"/>
+            <GradientStop Color="#00FFFFFF" Offset="0.52"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ExpanderArrowPressedFill1" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="{StaticResource ItemOver2}" Offset="0"/>
+            <GradientStop Color="{StaticResource ExpanderPress1}" Offset="0.52"/>
+            <GradientStop Color="{StaticResource CheckInnerOver}" Offset="0.521"/>
+            <GradientStop Color="{StaticResource TreeviewArrowOver}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ExpanderArrowPressedFill2" EndPoint="1,0" StartPoint="0,0">
+            <GradientStop Color="{StaticResource ExpanderPress2}" Offset="0"/>
+            <GradientStop Color="{StaticResource ExpanderMid}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource ExpanderPress2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ExpanderArrowPressedFill3" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="#A5FFFFFF" Offset="0"/>
+            <GradientStop Color="#26FFFFFF" Offset="0.506"/>
+            <GradientStop Color="#00FFFFFF" Offset="0.521"/>
+        </LinearGradientBrush>
+
+        <!-- Tab specific resources -->
+        <SolidColorBrush x:Key="TabOverStroke" Color="{StaticResource TabStroke}"/>
+
+        <!-- Tab vertical (btn over vertical) -->
+        <LinearGradientBrush x:Key="VTabOverGradient" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.509"/>
+            <GradientStop Color="{StaticResource Over3}" Offset="1"/>
+        </LinearGradientBrush>
+
+        <!-- Scrollbar specific resources -->
+        <SolidColorBrush x:Key="ScrollbarBkgNormStroke" Color="#FFA4A4A4"/>
+
+        <LinearGradientBrush x:Key="HScrollbarBkgNormFill" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="#FFEFEFF0" Offset="0.5"/>
+            <GradientStop Color="#FFD5D6D8" Offset="0.513"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HScrollbarBkgOverFill" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.513"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HScrollbarBkgPressFill" EndPoint="0.5,1" StartPoint="0.5,0">
+            <GradientStop Color="{StaticResource Press2}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource ThumbPress1}" Offset="0.513"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VScrollbarBkgNormFill" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="#FFEFEFF0" Offset="0.5"/>
+            <GradientStop Color="#FFD5D6D8" Offset="0.513"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VScrollbarBkgOverFill" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource Over1}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource Over2}" Offset="0.513"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VScrollbarBkgPressFill" EndPoint="1,0.5" StartPoint="0,0.5">
+            <GradientStop Color="{StaticResource Press2}" Offset="0.5"/>
+            <GradientStop Color="{StaticResource ThumbPress1}" Offset="0.513"/>
+        </LinearGradientBrush>
+
+        <LinearGradientBrush x:Key="HThumbDivetNormFill" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="#FF979797" Offset="0"/>
+            <GradientStop Color="#19979797" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HThumbDivetNormStroke" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="#B2000000" Offset="0"/>
+            <GradientStop Color="#33000000" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HThumbDivetOverFill" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="{StaticResource Press3}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill1}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HThumbDivetOverStroke" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="{StaticResource ThumbDivetOver}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HThumbDivetPressFill" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="{StaticResource RadioIconPress2}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill1}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="HThumbDivetPressStroke" EndPoint="0.5,1" StartPoint="0.5,0.1">
+            <GradientStop Color="{StaticResource PressStroke1}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetNormFill" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="#FF979797" Offset="0"/>
+            <GradientStop Color="#19979797" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetNormStroke" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="#B2000000" Offset="0"/>
+            <GradientStop Color="#33000000" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetOverFill" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="{StaticResource Press3}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill1}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetOverStroke" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="{StaticResource ThumbDivetOver}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill2}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetPressFill" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="{StaticResource RadioIconPress2}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill1}" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="VThumbDivetPressStroke" EndPoint="1,0.5" StartPoint="0.1,0.5">
+            <GradientStop Color="{StaticResource PressStroke1}" Offset="0"/>
+            <GradientStop Color="{StaticResource ThumbDivetFill2}" Offset="1"/>
+        </LinearGradientBrush>
+        <!-- End Static Resources -->
+
+
+        <Color x:Key="BlackColor">#FF000000</Color>
+        <Color x:Key="WhiteColor">#FFFFFFFF</Color>
+
+
+        <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888"/>
+
+
+        <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF"/>
+
+
+        <Style x:Key="NuclearButtonFocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Border>
+                            <Rectangle Margin="2" Stroke="#60000000" StrokeThickness="1" StrokeDashArray="1 2"/>
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Button}" BasedOn="{x:Null}">
+            <Setter Property="Foreground" Value="{StaticResource ButtonFontColor}"/>
+            <Setter Property="Padding" Value="3"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource NuclearButtonFocusVisual}"/>
+<Setter Property="Template" Value="{DynamicResource ButtonTemplate}" />
+        </Style>
+    
+    <ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid x:Name="Grid">
+                            <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F" CornerRadius="3"/>
+                            <Border x:Name="BackgroundNorm_highlight" Margin="1" BorderBrush="#F2FFFFFF" BorderThickness="1,0,1,1" CornerRadius="3" Opacity="0.65"/>
+                            <Border x:Name="BackgroundOver" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TextBoxPressBrush}" BorderThickness="1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgroundOver_Highlight" Margin="1" Background="{StaticResource btnOverFillHighlight}" BorderBrush="{StaticResource hoverStroke}" BorderThickness="1,0,1,1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgroundPressed" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressBorder}" BorderThickness="1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgoundPressed_Highlight" Background="{StaticResource btnPressFillHighlight}" Margin="1" CornerRadius="2.5" Opacity="0"/>
+                            <Border x:Name="Background_overlay" Margin="1,1,1,0" BorderThickness="1" CornerRadius="3,3,0,0">
+                                <Border.Background>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#00FFFFFF" Offset="0"/>
+                                        <GradientStop Color="#72FFFFFF" Offset="0.157"/>
+                                        <GradientStop Color="#72FFFFFF" Offset="0.5"/>
+                                        <GradientStop Color="#00FFFFFF" Offset="0.51"/>
+                                    </LinearGradientBrush>
+                                </Border.Background>
+                            </Border>
+                            <Border x:Name="DisabledVisualElement" Background="#FFF1F1F1" BorderBrush="#FFB2B2B2" BorderThickness="1" CornerRadius="3" IsHitTestVisible="false" Visibility="Collapsed"/>
+                            <ContentPresenter
+                                       x:Name="contentPresenter"
+                                       Content="{TemplateBinding Content}"
+                                       ContentTemplate="{TemplateBinding ContentTemplate}"
+                                       VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
+                                       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                                       Margin="{TemplateBinding Padding}"/>
+                            <TextBlock Panel.ZIndex="1"
+                                       x:Name="DisabledOverlay"
+                                       Text="{TemplateBinding Content}"
+                                       Foreground="#FF969696"
+                                       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                                       VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
+                                       Margin="{TemplateBinding Padding}"
+                                       Visibility="Collapsed"/>
+                            <Border x:Name="FocusVisualElement" Margin="1" BorderBrush="{StaticResource btnFocus}" BorderThickness="1" CornerRadius="2" IsHitTestVisible="false" Opacity="0"/>
+                            <Border x:Name="DefaultBorder" Margin="1" BorderBrush="{StaticResource btnFocus}" BorderThickness="1" CornerRadius="2" IsHitTestVisible="false" Opacity="0"/>
+                        </Grid>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsDefault" Value="True">
+                                <Setter Property="Opacity" TargetName="DefaultBorder" Value="1"/>
+                            </Trigger>
+                            <Trigger Property="IsKeyboardFocused" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="FocusedOff_BeginStoryboard" Storyboard="{StaticResource FocusedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="FocusedOn_BeginStoryboard" Storyboard="{StaticResource FocusedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="true"/>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                                <Setter Property="Visibility" TargetName="DisabledOverlay" Value="Visible"/>
+                                <Setter Property="Visibility" TargetName="contentPresenter" Value="Collapsed"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+
+        <Style x:Key="RadioButtonFocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Border>
+                            <Rectangle Margin="15,0,0,0" Stroke="#60000000" StrokeThickness="1" StrokeDashArray="1 2"/>
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="CheckBoxFocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Border>
+                            <Rectangle Margin="15,0,0,0" Stroke="#60000000" StrokeThickness="1" StrokeDashArray="1 2"/>
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type CheckBox}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource CheckBoxFocusVisual}"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Padding" Value="4,1,0,0"/>
+
+<Setter Property="Template" Value="{DynamicResource CheckBoxTemplate}" />
+        </Style>
+    
+    <ControlTemplate x:Key="CheckBoxTemplate" TargetType="{x:Type CheckBox}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Background_Over" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BoxOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Background_Over" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BoxOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BoxPress" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Background_Press" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Background_Press" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BoxPress" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CheckIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.9"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CheckIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="IndeterminateOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="IndeterminateIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.9"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="IndeterminateOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="IndeterminateIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusedVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusedVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <BulletDecorator Background="Transparent">
+                            <BulletDecorator.Bullet>
+                                <Grid>
+                                    <Rectangle x:Name="Background" Margin="1" Width="13" Height="13" Fill="#FFF4F4F4" Stroke="#FF868686" StrokeThickness="1" />
+                                    <Rectangle x:Name="Background_Over" Width="13" Height="13" Fill="{StaticResource checkOverFill}" Stroke="{StaticResource checkOverStroke}" StrokeThickness="1" Opacity="0"/>
+                                    <Rectangle x:Name="Background_Press" Width="13" Height="13" Fill="{StaticResource checkPressFill}" Stroke="{StaticResource btnPressStroke2}" StrokeThickness="1" Opacity="0"/>
+                                    <Rectangle x:Name="BoxFill" Width="9" Height="9" Fill="#FFCACFD5" StrokeThickness="1">
+                                        <Rectangle.Stroke>
+                                            <LinearGradientBrush EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+                                                <GradientStop Color="#FFB3B8BD"/>
+                                                <GradientStop Color="#FFE0E0E0" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Rectangle.Stroke>
+                                    </Rectangle>
+                                    <Rectangle x:Name="BoxOver" Margin="3" Width="9" Height="9" Fill="{StaticResource checkInnerOverFill}" Stroke="{StaticResource checkInnerOverStroke}" StrokeThickness="1" Opacity="0"/>
+                                    <Rectangle x:Name="BoxPress" Width="9" Height="9" Fill="{StaticResource checkInnerPressFill}" Stroke="{StaticResource checkInnerPressStroke}" StrokeThickness="1" Opacity="0" />
+                                    <Rectangle x:Name="BoxGradient" Width="7" Height="7" StrokeThickness="1">
+                                        <Rectangle.Fill>
+                                            <LinearGradientBrush StartPoint="0.238,0.228" EndPoint="0.752,0.749">
+                                                <GradientStop Color="#00F6F6F6" Offset="0.254" />
+                                                <GradientStop Color="#53F8F8F8" Offset="0.54"/>
+                                                <GradientStop Color="#BFFFFFFF" Offset="0.996"/>
+                                            </LinearGradientBrush>
+                                        </Rectangle.Fill>
+                                    </Rectangle>
+                                    <Rectangle x:Name="IndeterminateIcon" Width="5" Height="2" Fill="{StaticResource checkIconStroke}" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Path x:Name="CheckIcon" Margin="0,3.333,3.833,0" Width="7" Height="9" Fill="{StaticResource checkIconStroke}" Stretch="Fill" Opacity="0" VerticalAlignment="Top" HorizontalAlignment="Right" Data="M103.78572,598.96112 L105.09846,597.5661 L107.00806,600.16229 C107.00806,600.16229 109.91004,592.74463 109.91004,592.74463 C109.91004,592.74463 111.74678,593.79761 111.74678,593.79761 C111.74678,593.79761 107.88566,602.75848 107.88566,602.75848 L106.60118,602.75848 z"/>
+                                    <Rectangle x:Name="FocusedVisualElement" Stroke="{StaticResource btnFocus}" StrokeThickness="1" Visibility="Visible" Opacity="0"/>
+                                    <Rectangle x:Name="DisabledVisualElement" Margin="1" Fill="#4CFFFFFF" Visibility="Collapsed"/>
+                                </Grid>
+                            </BulletDecorator.Bullet>
+                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
+                        </BulletDecorator>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsChecked" Value="True" />
+                                    <Condition Property="IsThreeState" Value="True" />
+                                </MultiTrigger.Conditions>
+                                <MultiTrigger.EnterActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOn}" x:Name="CheckedOn_BeginStoryboard"/>
+
+                                </MultiTrigger.EnterActions>
+                                <MultiTrigger.ExitActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOff}" x:Name="CheckedOff_BeginStoryboard"/>
+
+                                </MultiTrigger.ExitActions>
+                            </MultiTrigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsChecked" Value="{x:Null}" />
+                                    <Condition Property="IsThreeState" Value="True" />
+                                </MultiTrigger.Conditions>
+                                <MultiTrigger.EnterActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource IndeterminateOn}" x:Name="IndeterminateOn_BeginStoryboard"/>
+
+                                </MultiTrigger.EnterActions>
+                                <MultiTrigger.ExitActions>
+
+                                    <BeginStoryboard Storyboard="{StaticResource IndeterminateOff}" x:Name="IndeterminateOff_BeginStoryboard"/>
+
+                                </MultiTrigger.ExitActions>
+                                <Setter Property="Opacity" TargetName="CheckIcon" Value="0"/>
+                                <Setter Property="Visibility" TargetName="CheckIcon" Value="Collapsed"/>
+                            </MultiTrigger>
+                            <Trigger Property="IsChecked" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOff}" x:Name="CheckedOn_BeginStoryboard1"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOn}" x:Name="CheckedOff_BeginStoryboard1"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+
+                    </ControlTemplate>
+
+        <Style TargetType="{x:Type RadioButton}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource RadioButtonFocusVisual}"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Padding" Value="4,1,0,0"/>
+<Setter Property="Template" Value="{DynamicResource RadioButtonTemplate}" />
+        </Style>
+    
+    <ControlTemplate x:Key="RadioButtonTemplate" TargetType="{x:Type RadioButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPress" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="CircleFillPress" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="CircleIconPress" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPress" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="CircleFillPress" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="CircleIconPress" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CheckIconOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleIconPress" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleIcon" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CheckIconOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="CircleIconPress" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusedVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusedVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <BulletDecorator Background="Transparent">
+                            <BulletDecorator.Bullet>
+                                <Grid>
+                                    <Ellipse x:Name="Background" Width="14" Height="14" Fill="#FFF4F4F4" Stroke="#FF6F6F6F" StrokeThickness="1"/>
+                                    <Ellipse x:Name="BackgroundOver" Width="14" Height="14" Fill="{StaticResource checkOverFill}" Stroke="{StaticResource checkOverStroke}" StrokeThickness="1" Opacity="0"/>
+                                    <Ellipse x:Name="BackgroundPress" Width="14" Height="14" Fill="{StaticResource checkPressFill}" Stroke="{StaticResource btnPressStroke2}" StrokeThickness="1" Opacity="0"/>
+                                    <Ellipse x:Name="CircleFill" Margin="2" Fill="#FFCACFD5" StrokeThickness="1">
+                                        <Ellipse.Stroke>
+                                            <LinearGradientBrush EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+                                                <GradientStop Color="#FFB3B8BD" Offset="0"/>
+                                                <GradientStop Color="#FFE0E0E0" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Ellipse.Stroke>
+                                    </Ellipse>
+                                    <Ellipse x:Name="CircleOver" Margin="2" Fill="{StaticResource checkInnerOverFill}" Stroke="{StaticResource checkInnerOverStroke}" StrokeThickness="1" Opacity="0"/>
+                                    <Ellipse x:Name="CircleFillPress" Margin="2" Fill="{StaticResource checkInnerPressFill}" Stroke="{StaticResource checkInnerPressStroke}" StrokeThickness="1" Opacity="0" Visibility="Visible"/>
+                                    <Ellipse x:Name="CircleGradient" Margin="3" StrokeThickness="1">
+                                        <Ellipse.Fill>
+                                            <LinearGradientBrush EndPoint="0.8,0.8" StartPoint="0.3,0.3">
+                                                <GradientStop Color="#00F6F6F6" Offset="0"/>
+                                                <GradientStop Color="#53F8F8F8" Offset="0.3"/>
+                                                <GradientStop Color="#BFFFFFFF" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Ellipse.Fill>
+                                    </Ellipse>
+                                    <Ellipse x:Name="CircleIcon" Margin="3" Fill="{StaticResource radioIconFill}" Stroke="{StaticResource radioIconStroke}" StrokeThickness="1.25" Opacity="0"/>
+                                    <Ellipse x:Name="CheckIconOver" Margin="3" Fill="{StaticResource radioIconFillOver}" Stroke="{StaticResource radioIconStroke}" StrokeThickness="1.25" Opacity="0"/>
+                                    <Ellipse x:Name="CircleIconPress" Margin="3" Fill="{StaticResource radioIconFillPress}" Stroke="{StaticResource radioIconStroke}" StrokeThickness="1.25" Opacity="0"/>
+                                    <Ellipse x:Name="DisabledVisualElement" Width="14" Height="14" Fill="#FFFFFFFF" Stroke="#FFFFFFFF" Opacity="0.35" Visibility="Collapsed"/>
+                                    <Ellipse x:Name="FocusedVisualElement" Margin="-1" Width="16" Height="16" Stroke="{StaticResource btnFocus}" StrokeThickness="1" IsHitTestVisible="false" Opacity="0" />
+                                </Grid>
+                            </BulletDecorator.Bullet>
+                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
+                        </BulletDecorator>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="false">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="CheckedOn_BeginStoryboard" Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="CheckedOff_BeginStoryboard" Storyboard="{StaticResource CheckedOff}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+
+                                <Setter Property="Foreground" Value="#80000000"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+
+        <Style x:Key="NuclearRepeatButton" d:IsControlPart="True" TargetType="{x:Type RepeatButton}" BasedOn="{x:Null}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type RepeatButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1" />
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0" />
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="1" />
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0" />
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Rectangle x:Name="Background" Fill="{StaticResource VScrollbarBkgNormFill}" Stroke="{StaticResource ScrollbarBkgNormStroke}" StrokeThickness="1" RadiusX="0.5" RadiusY="0.5" Opacity="0" />
+                            <Rectangle x:Name="BackgroundOver" Fill="{StaticResource VScrollbarBkgOverFill}" Stroke="{StaticResource TextBoxPressBrush}" StrokeThickness="1" RadiusX="0.5" RadiusY="0.5" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundPressed" Fill="{StaticResource VScrollbarBkgPressFill}" Stroke="{StaticResource btnPressStroke2}" StrokeThickness="1" RadiusX="0.5" RadiusY="0.5" Opacity="0"/>
+                            <Rectangle x:Name="Highlight" Margin="1" Stroke="#99FFFFFF" StrokeThickness="1" RadiusX="0.5" RadiusY="0.5" Opacity="0" IsHitTestVisible="false"/>
+                            <Rectangle x:Name="DisabledElement" Fill="#FFFFFFFF" Opacity="0"/>
+                            <ContentPresenter HorizontalAlignment="Center" x:Name="ContentPresenter" VerticalAlignment="Center" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsKeyboardFocused" Value="true"/>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Opacity" TargetName="DisabledElement" Value="0.7"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="NuclearThumbStyle" d:IsControlPart="True" TargetType="{x:Type Thumb}" BasedOn="{x:Null}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Thumb}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderOver1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderOver2" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderOver1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderOver2" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderPress" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderPress1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BorderPress2" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderPress" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderPress1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BorderPress2" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid Margin="0,0,0,0" x:Name="Grid">
+                            <Rectangle x:Name="Background" Fill="{StaticResource VScrollbarBkgNormFill}" Stroke="{StaticResource ScrollbarBkgNormStroke}" RadiusX="1.5" RadiusY="1.5"/>
+                            <Rectangle x:Name="BackgroundOver" Fill="{StaticResource VScrollbarBkgOverFill}" Stroke="{StaticResource TextBoxPressBrush}" RadiusX="1.5" RadiusY="1.5" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundPressed" Fill="{StaticResource VScrollbarBkgPressFill}" Stroke="{StaticResource btnPressStroke2}" RadiusX="1.5" RadiusY="1.5" Opacity="0"/>
+                            <Rectangle x:Name="BorderHighlight" Width="11" Height="10" HorizontalAlignment="Center" VerticalAlignment="Center">
+                                <Rectangle.Stroke>
+                                    <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
+                                        <GradientStop Color="#00FFFFFF" Offset="0"/>
+                                        <GradientStop Color="#59FFFFFF" Offset="1"/>
+                                    </LinearGradientBrush>
+                                </Rectangle.Stroke>
+                            </Rectangle>
+                            <Border Margin="0,0,0,6" Width="9" Height="2" Background="{StaticResource VThumbDivetNormFill}" BorderBrush="{StaticResource VThumbDivetNormStroke}" BorderThickness="1,1,0,0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                            <Border Width="9" Height="2" Background="{StaticResource VThumbDivetNormFill}" BorderBrush="{StaticResource VThumbDivetNormStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                            <Border Margin="0,0,0,-6" Width="9" Height="2" Background="{StaticResource VThumbDivetNormFill}" BorderBrush="{StaticResource VThumbDivetNormStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
+                            <Border x:Name="BorderOver" Margin="0,0,0,6" Width="9" Height="2" Background="{StaticResource VThumbDivetOverFill}" BorderBrush="{StaticResource VThumbDivetOverStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Opacity="0"/>
+                            <Border x:Name="BorderOver1" Width="9" Height="2" Background="{StaticResource VThumbDivetOverFill}" BorderBrush="{StaticResource VThumbDivetOverStroke}" BorderThickness="1,1,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="0"/>
+                            <Border x:Name="BorderOver2" Margin="0,0,0,-6" Width="9" Height="2" Background="{StaticResource VThumbDivetOverFill}" BorderBrush="{StaticResource VThumbDivetOverStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Opacity="0"/>
+                            <Border x:Name="BorderPress" Margin="0,0,0,6" Width="9" Height="2" Background="{StaticResource VThumbDivetPressFill}" BorderBrush="{StaticResource VThumbDivetPressStroke}" BorderThickness="1,1,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" Opacity="0"/>
+                            <Border x:Name="BorderPress1" Width="9" Height="2" Background="{StaticResource VThumbDivetPressFill}" BorderBrush="{StaticResource VThumbDivetPressStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Opacity="0"/>
+                            <Border x:Name="BorderPress2" Margin="0,0,0,-6" Width="9" Height="2" Background="{StaticResource VThumbDivetPressFill}" BorderBrush="{StaticResource VThumbDivetPressStroke}" BorderThickness="1,1,0,0" VerticalAlignment="Center" HorizontalAlignment="Center" Opacity="0"/>
+                            <Rectangle x:Name="Highlight" Margin="1" Stroke="#FFFFFFFF" RadiusX="0.5" RadiusY="0.5" Opacity="0.6" IsHitTestVisible="false" />
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True"/>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Opacity" TargetName="Grid" Value="0"/>
+                            </Trigger>
+                            <Trigger Property="IsDragging" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="NuclearScrollRepeatButtonStyle" d:IsControlPart="True" TargetType="{x:Type RepeatButton}">
+            <Setter Property="Background" Value="Transparent"/>
+            <Setter Property="BorderBrush" Value="Transparent"/>
+            <Setter Property="IsTabStop" Value="false"/>
+            <Setter Property="Focusable" Value="false"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type RepeatButton}">
+                        <Grid>
+                            <Rectangle Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/>
+                        </Grid>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+
+        <Style TargetType="{x:Type ScrollBar}">
+            <Setter Property="Stylus.IsFlicksEnabled" Value="false"/>
+            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ScrollBar}">
+                        <Grid x:Name="GridRoot" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}">
+                            <Grid.RowDefinitions>
+                                <RowDefinition MaxHeight="18"/>
+                                <RowDefinition Height="0.00001*"/>
+                                <RowDefinition MaxHeight="18"/>
+                            </Grid.RowDefinitions>
+                            <Rectangle Grid.RowSpan="5" RadiusX="0" RadiusY="0" StrokeThickness="1" Stroke="#FFF0F0F0" Fill="#FFEFEFEF"/>
+                            <RepeatButton x:Name="DecreaseRepeat" Style="{DynamicResource NuclearRepeatButton}" Command="ScrollBar.LineUpCommand">
+                                <Grid>
+                                    <Path x:Name="ArrowUp" Height="6" Width="10" Data="F1 M 541.537,173.589L 531.107,173.589L 536.322,167.49L 541.537,173.589 Z " HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform" IsHitTestVisible="False">
+                                        <Path.Fill>
+                                            <LinearGradientBrush EndPoint="0.7,0.75" StartPoint="0.25,0">
+                                                <GradientStop Color="#CC000000" Offset="0.25"/>
+                                                <GradientStop Color="#7F000000" Offset="0.75"/>
+                                                <GradientStop Color="#33000000" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Path.Fill>
+                                    </Path>
+                                </Grid>
+                            </RepeatButton>
+
+                            <Track Grid.Row="1" x:Name="PART_Track" Orientation="Vertical" IsDirectionReversed="true">
+                                <Track.Thumb>
+                                    <Thumb Style="{DynamicResource NuclearThumbStyle}"/>
+                                </Track.Thumb>
+                                <Track.IncreaseRepeatButton>
+                                    <RepeatButton x:Name="PageUp" Style="{DynamicResource NuclearScrollRepeatButtonStyle}" Command="ScrollBar.PageDownCommand"/>
+                                </Track.IncreaseRepeatButton>
+                                <Track.DecreaseRepeatButton>
+                                    <RepeatButton x:Name="PageDown" Style="{DynamicResource NuclearScrollRepeatButtonStyle}" Command="ScrollBar.PageUpCommand"/>
+                                </Track.DecreaseRepeatButton>
+                            </Track>
+
+                            <RepeatButton Grid.Row="2" x:Name="IncreaseRepeat" Style="{DynamicResource NuclearRepeatButton}" Command="ScrollBar.LineDownCommand">
+                                <Grid>
+                                    <Path x:Name="ArrowDown" Grid.Row="4" Height="6" Width="10" Data="F1 M 531.107,321.943L 541.537,321.943L 536.322,328.042L 531.107,321.943 Z " HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform" IsHitTestVisible="False">
+                                        <Path.Fill>
+                                            <LinearGradientBrush EndPoint="0.4,1" StartPoint="-0.3,0">
+                                                <GradientStop Color="#CC000000" Offset="0.25"/>
+                                                <GradientStop Color="#7F000000" Offset="0.75"/>
+                                                <GradientStop Color="#33000000" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Path.Fill>
+                                    </Path>
+                                </Grid>
+                            </RepeatButton>
+                        </Grid>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="Orientation" Value="Horizontal">
+
+                                <Setter Property="LayoutTransform" TargetName="GridRoot">
+                                    <Setter.Value>
+                                        <RotateTransform Angle="-90"/>
+                                    </Setter.Value>
+                                </Setter>
+
+                                <Setter TargetName="PART_Track" Property="Orientation" Value="Vertical"/>
+
+                                <Setter Property="Command" Value="ScrollBar.LineLeftCommand" TargetName="DecreaseRepeat"/>
+                                <Setter Property="Command" Value="ScrollBar.LineRightCommand" TargetName="IncreaseRepeat"/>
+                                <Setter Property="Command" Value="ScrollBar.PageLeftCommand" TargetName="PageDown"/>
+                                <Setter Property="Command" Value="ScrollBar.PageRightCommand" TargetName="PageUp"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type ScrollViewer}" BasedOn="{x:Null}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ScrollViewer}">
+                        <Grid Background="{TemplateBinding Background}">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="*"/>
+                                <ColumnDefinition Width="Auto"/>
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="*"/>
+                                <RowDefinition Height="Auto"/>
+                            </Grid.RowDefinitions>
+                            <ScrollContentPresenter Grid.Column="0" Grid.Row="0" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" CanContentScroll="{TemplateBinding CanContentScroll}"/>
+
+                            <ScrollBar Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Grid.Column="0" Grid.Row="1" x:Name="PART_HorizontalScrollBar"   Orientation="Horizontal" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Minimum="0" Maximum="{TemplateBinding ScrollableWidth}" AutomationProperties.AutomationId="HorizontalScrollBar"/>
+                            <ScrollBar Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Grid.Column="1" Grid.Row="0" x:Name="PART_VerticalScrollBar"   Orientation="Vertical" Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Minimum="0" Maximum="{TemplateBinding ScrollableHeight}" AutomationProperties.AutomationId="VerticalScrollBar"/>
+                        </Grid>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type ListBox}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
+            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
+            <Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="BorderBrush" Value="{StaticResource btnPressStroke2}"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Padding" Value="1"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ListBox}">
+                        <Grid>
+                            <Border BorderThickness="{TemplateBinding BorderThickness}" Background="#FFFFFFFF" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="2">
+                                <ScrollViewer Margin="1"   Focusable="false" Background="{TemplateBinding Background}">
+
+                                    <StackPanel Margin="2" IsItemsHost="true"/>
+
+                                </ScrollViewer>
+                            </Border>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsEnabled" Value="false"/>
+                            <Trigger Property="IsGrouping" Value="true">
+                                <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+
+        <Style d:IsControlPart="True" TargetType="{x:Type ListBoxItem}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="OverridesDefaultStyle" Value="true"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="Padding" Value="3" />
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0.73"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelectedDisabled" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelectedDisabled" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid SnapsToDevicePixels="true">
+                            <Rectangle x:Name="BackgroundGradientOver" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundGradientSelectedDisabled" Fill="{StaticResource grayGradient}" Stroke="#7F8E8F8F" RadiusX="2" RadiusY="2" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundGradientSelected" Fill="{StaticResource BtnOverFill}" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundHighlight" Margin="1" Stroke="#A0FFFFFF" RadiusX="1" RadiusY="1"/>
+                            <ContentPresenter
+                                       x:Name="contentPresenter"
+                                       Content="{TemplateBinding Content}"
+                                       ContentTemplate="{TemplateBinding ContentTemplate}"
+                                       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                                       Margin="{TemplateBinding Padding}"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+
+                            <Trigger Property="IsSelected" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOff}" x:Name="SelectedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOn}" x:Name="SelectedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="BackgroundGradientSelected" Value="Hidden"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="ExpanderHeaderFocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Border>
+                            <Rectangle SnapsToDevicePixels="true" Margin="0" Stroke="Black" StrokeDashArray="1 2" StrokeThickness="1" />
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="ExpanderDownHeaderStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00.1000000" Duration="00:00:00.0010000" Storyboard.TargetName="arrowDown" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00.1000000" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00.4000000" Duration="00:00:00.0010000" Storyboard.TargetName="arrowDown" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00.4000000" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.84"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Rectangle x:Name="HoverBackground" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground1" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground2" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Grid Margin="{TemplateBinding Padding}">
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition Width="18"/>
+                                    <ColumnDefinition Width="*"/>
+                                </Grid.ColumnDefinitions>
+                                <Grid Height="18" HorizontalAlignment="Left" VerticalAlignment="Top">
+                                    <Ellipse x:Name="circleOver1" Height="18" Width="18" Fill="{StaticResource ExpanderArrowHoverFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver2" Height="18" Width="18" Fill="{StaticResource ExpanderArrowHoverFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver3" Height="18" Width="18" Fill="{StaticResource ExpanderArrowHoverFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress1" Height="18" Width="18" Fill="{StaticResource ExpanderArrowPressedFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress2" Height="18" Width="18" Fill="{StaticResource ExpanderArrowPressedFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress3" Height="18" Width="18" Fill="{StaticResource ExpanderArrowPressedFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Path x:Name="arrowDown" Stroke="{StaticResource ButtonFontColor}" StrokeThickness="2" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5">
+                                        <Path.RenderTransform>
+                                            <TransformGroup>
+                                                <ScaleTransform/>
+                                                <SkewTransform/>
+                                                <RotateTransform/>
+                                                <TranslateTransform/>
+                                            </TransformGroup>
+                                        </Path.RenderTransform>
+                                    </Path>
+                                </Grid>
+                                <ContentPresenter x:Name="header" Margin="4,0,0,0" Grid.Column="1" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" HorizontalAlignment="Left" VerticalAlignment="Center" IsHitTestVisible="false"/>
+                            </Grid>
+                            <Rectangle x:Name="FocusBackground" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" IsHitTestVisible="false" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="CheckedOff_BeginStoryboard" Storyboard="{StaticResource CheckedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="CheckedOn_BeginStoryboard" Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="ExpanderRightHeaderStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.1000000" Storyboard.TargetName="arrowRight" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="90"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.4000000" Storyboard.TargetName="arrowRight" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-90"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.84"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Rectangle x:Name="HoverBackground" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+
+                            <Rectangle x:Name="HoverBackground1" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+
+                            <Rectangle x:Name="HoverBackground2" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+
+
+
+                            <Grid SnapsToDevicePixels="False" Background="Transparent">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="18"/>
+                                    <RowDefinition Height="*"/>
+                                </Grid.RowDefinitions>
+                                <Grid>
+                                    <Grid.LayoutTransform>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1"/>
+                                            <SkewTransform AngleX="0" AngleY="0"/>
+                                            <RotateTransform Angle="0"/>
+                                            <TranslateTransform X="0" Y="0"/>
+                                        </TransformGroup>
+                                    </Grid.LayoutTransform>
+                                    <Ellipse x:Name="circleOver1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Path x:Name="arrowRight" Stroke="{StaticResource ButtonFontColor}" StrokeThickness="2" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5">
+                                        <Path.RenderTransform>
+                                            <TransformGroup>
+                                                <ScaleTransform/>
+                                                <SkewTransform/>
+                                                <RotateTransform Angle="-90"/>
+                                            </TransformGroup>
+                                        </Path.RenderTransform>
+                                    </Path>
+                                </Grid>
+                                <ContentPresenter SnapsToDevicePixels="True" HorizontalAlignment="Center" Margin="6,4,6,0" VerticalAlignment="Top" Grid.Row="1" RecognizesAccessKey="True">
+                                    <ContentPresenter.LayoutTransform>
+                                        <TransformGroup>
+                                            <TransformGroup.Children>
+                                                <TransformCollection>
+                                                    <RotateTransform Angle="-90" />
+                                                </TransformCollection>
+                                            </TransformGroup.Children>
+                                        </TransformGroup>
+                                    </ContentPresenter.LayoutTransform>
+                                </ContentPresenter>
+                                <Rectangle x:Name="FocusBackground" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" IsHitTestVisible="false" Opacity="0" Grid.RowSpan="2" />
+                            </Grid>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="CheckedOff_BeginStoryboard" Storyboard="{StaticResource CheckedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="CheckedOn_BeginStoryboard" Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="ExpanderUpHeaderStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowUp" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowUp" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.84"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Rectangle x:Name="HoverBackground" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleY="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground1" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleY="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground2" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleY="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Grid Margin="{TemplateBinding Padding}">
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition Width="18"/>
+                                    <ColumnDefinition Width="*"/>
+                                </Grid.ColumnDefinitions>
+                                <Grid Height="18" HorizontalAlignment="Left" VerticalAlignment="Top">
+                                    <Grid.LayoutTransform>
+                                        <TransformGroup>
+                                            <TransformGroup.Children>
+                                                <TransformCollection>
+                                                    <RotateTransform Angle="180" />
+                                                </TransformCollection>
+                                            </TransformGroup.Children>
+                                        </TransformGroup>
+                                    </Grid.LayoutTransform>
+                                    <Ellipse x:Name="circleOver1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill1}" Stroke="#00000000" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Ellipse x:Name="circleOver2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill2}" Stroke="#00000000" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Ellipse x:Name="circleOver3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Ellipse x:Name="circlePress1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill1}" Stroke="#00000000" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Ellipse x:Name="circlePress2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill2}" Stroke="#00000000" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Ellipse x:Name="circlePress3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
+                                    <Path x:Name="arrowUp" Stroke="{StaticResource ButtonFontColor}" StrokeThickness="2" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5">
+                                        <Path.RenderTransform>
+                                            <TransformGroup>
+                                                <ScaleTransform ScaleY="-1"/>
+                                            </TransformGroup>
+                                        </Path.RenderTransform>
+                                    </Path>
+                                </Grid>
+                                <ContentPresenter SnapsToDevicePixels="True" HorizontalAlignment="Left" Margin="4,2,0,2" VerticalAlignment="Center" Grid.Column="1" RecognizesAccessKey="True" />
+                            </Grid>
+                            <Rectangle x:Name="FocusBackground" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" IsHitTestVisible="false" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="CheckedOff_BeginStoryboard" Storyboard="{StaticResource CheckedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="CheckedOn_BeginStoryboard" Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="ExpanderLeftHeaderStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circleOver3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress1" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress2" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="circlePress3" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="HoverBackground1" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowLeft" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowLeft" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="-90"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowLeft" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="arrowLeft" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="90"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="HoverBackground2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.84"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusBackground" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.4000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Rectangle x:Name="HoverBackground" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleX="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground1" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleX="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Rectangle x:Name="HoverBackground2" Fill="{StaticResource hoverGradientVertical}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0" RenderTransformOrigin="0.5,0.5">
+                                <Rectangle.RenderTransform>
+                                    <TransformGroup>
+                                        <ScaleTransform ScaleX="-1"/>
+                                        <SkewTransform/>
+                                        <RotateTransform/>
+                                        <TranslateTransform/>
+                                    </TransformGroup>
+                                </Rectangle.RenderTransform>
+                            </Rectangle>
+                            <Grid Margin="{TemplateBinding Padding}">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="18"/>
+                                    <RowDefinition Height="*"/>
+                                </Grid.RowDefinitions>
+                                <Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Top">
+                                    <Grid.LayoutTransform>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1"/>
+                                            <SkewTransform AngleX="0" AngleY="0"/>
+                                            <RotateTransform Angle="0"/>
+                                            <TranslateTransform X="0" Y="0"/>
+                                        </TransformGroup>
+                                    </Grid.LayoutTransform>
+                                    <Ellipse x:Name="circleOver1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circleOver3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowHoverFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress1" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill1}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress2" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill2}" Stroke="#00000000" Opacity="0"/>
+                                    <Ellipse x:Name="circlePress3" Width="18" Height="18" Fill="{StaticResource ExpanderArrowPressedFill3}" Stroke="{StaticResource expanderArrowStroke}" Opacity="0"/>
+                                    <Path x:Name="arrowLeft" Stroke="{StaticResource ButtonFontColor}" StrokeThickness="2" Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5">
+                                        <Path.RenderTransform>
+                                            <TransformGroup>
+                                                <ScaleTransform/>
+                                                <SkewTransform/>
+                                                <RotateTransform Angle="90"/>
+                                                <TranslateTransform/>
+                                            </TransformGroup>
+                                        </Path.RenderTransform>
+                                    </Path>
+                                </Grid>
+                                <ContentPresenter SnapsToDevicePixels="True" HorizontalAlignment="Center" Margin="3,4,3,0" VerticalAlignment="Top" Grid.Row="1" RecognizesAccessKey="True">
+                                    <ContentPresenter.LayoutTransform>
+                                        <TransformGroup>
+                                            <TransformGroup.Children>
+                                                <TransformCollection>
+                                                    <RotateTransform Angle="90" />
+                                                </TransformCollection>
+                                            </TransformGroup.Children>
+                                        </TransformGroup>
+                                    </ContentPresenter.LayoutTransform>
+                                </ContentPresenter>
+                            </Grid>
+                            <Rectangle x:Name="FocusBackground" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" IsHitTestVisible="false" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="CheckedOff_BeginStoryboard" Storyboard="{StaticResource CheckedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="CheckedOn_BeginStoryboard" Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Expander}">
+            <Setter Property="Background" Value="Transparent"/>
+            <Setter Property="Foreground" Value="{StaticResource ButtonFontColor}"/>
+            <Setter Property="FontWeight" Value="Bold"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="BorderBrush" Value="Transparent" />
+            <Setter Property="BorderThickness" Value="1" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Expander}">
+                        <Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1,1,1,1" CornerRadius="3">
+                            <Grid>
+                                <DockPanel>
+                                    <ToggleButton FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" Margin="1,1,1,0" MinHeight="0" MinWidth="0" x:Name="HeaderSite" Style="{StaticResource ExpanderDownHeaderStyle}" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" DockPanel.Dock="Top" />
+                                    <Border x:Name="border" Grid.Column="0" Grid.Row="1" Background="#FFFFFFFF" BorderThickness="1" CornerRadius="2" Padding="0" Visibility="Collapsed">
+                                        <Border.BorderBrush>
+                                            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                                <GradientStop Color="#FFABAEB3" Offset="0"/>
+                                                <GradientStop Color="#FFE2E8EE" Offset="0.355"/>
+                                            </LinearGradientBrush>
+                                        </Border.BorderBrush>
+                                        <ContentPresenter Focusable="false" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,1,1,1" x:Name="ExpandSite" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" DockPanel.Dock="Bottom" />
+                                    </Border>
+                                </DockPanel>
+                                <Border x:Name="DisabledVisualElement" IsHitTestVisible="false" Background="#A5FFFFFF" Opacity="0"/>
+                                <Border x:Name="FocusVisualElement" IsHitTestVisible="false" BorderBrush="#00FFFFFF" BorderThickness="1" Visibility="Collapsed"/>
+                            </Grid>
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsExpanded" Value="true">
+                                <Setter Property="Visibility" TargetName="border" Value="Visible" />
+                            </Trigger>
+                            <Trigger Property="ExpandDirection" Value="Down" />
+                            <Trigger Property="ExpandDirection" Value="Right">
+                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Right" />
+                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Left" />
+                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderRightHeaderStyle}" />
+                            </Trigger>
+                            <Trigger Property="ExpandDirection" Value="Up">
+                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Top" />
+                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Bottom" />
+                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderUpHeaderStyle}" />
+                            </Trigger>
+                            <Trigger Property="ExpandDirection" Value="Left">
+                                <Setter Property="DockPanel.Dock" TargetName="ExpandSite" Value="Left" />
+                                <Setter Property="DockPanel.Dock" TargetName="HeaderSite" Value="Right" />
+                                <Setter Property="Style" TargetName="HeaderSite" Value="{StaticResource ExpanderLeftHeaderStyle}" />
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
+                                <Setter Property="Opacity" TargetName="DisabledVisualElement" Value="1"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <ControlTemplate x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
+            <ControlTemplate.Resources>
+                <Storyboard x:Key="HoverOn">
+                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BtnOver" Storyboard.TargetProperty="Opacity" To="0.8"/>
+                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Background_over" Storyboard.TargetProperty="Opacity" To="1"/>
+                </Storyboard>
+                <Storyboard x:Key="HoverOff">
+                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BtnOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Background_over" Storyboard.TargetProperty="Opacity" To="0"/>
+                </Storyboard>
+                <Storyboard x:Key="PressedOn">
+                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BtnPress" Storyboard.TargetProperty="Opacity" To="0.8"/>
+                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Background_press" Storyboard.TargetProperty="Opacity" To="1"/>
+                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BtnPress_highlight" Storyboard.TargetProperty="Opacity" To="1"/>
+                </Storyboard>
+                <Storyboard x:Key="PressedOff">
+                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BtnPress" Storyboard.TargetProperty="Opacity" To="0"/>
+                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Background_press" Storyboard.TargetProperty="Opacity" To="0"/>
+                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BtnPress_highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                </Storyboard>
+            </ControlTemplate.Resources>
+            <Grid>
+                <Rectangle x:Name="Background" Fill="#FFFFFFFF" Stroke="#FFABAEB3" RadiusX="3" RadiusY="3" IsHitTestVisible="false"/>
+                <Rectangle x:Name="Background_over" Stroke="{StaticResource TextBoxOverBrush}" RadiusX="3" RadiusY="3" Opacity="0" IsHitTestVisible="false"/>
+                <Rectangle x:Name="Background_press" Stroke="{StaticResource TextBoxPressBrush}" RadiusX="3" RadiusY="3" Opacity="0" IsHitTestVisible="false"/>
+                <Border x:Name="BtnOver" Width="20" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TextBoxPressBrush}" BorderThickness="1" CornerRadius="0,3,3,0" Opacity="0" HorizontalAlignment="Right"/>
+                <Border x:Name="BtnPress" Width="20" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressStroke1}" BorderThickness="1" CornerRadius="0,3,3,0" Opacity="0" HorizontalAlignment="Right"/>
+                <Border x:Name="BtnPress_highlight" Background="{StaticResource ComboTogglePressHighlight}" Margin="1" Width="18" CornerRadius="0,2,2,0" Opacity="0" HorizontalAlignment="Right"/>
+                <Border x:Name="BtnOverlay" Margin="1" Width="18" CornerRadius="0,2,2,0" HorizontalAlignment="Right">
+                    <Border.Background>
+                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                            <GradientStop Color="#00FFFFFF"/>
+                            <GradientStop Color="#72FFFFFF" Offset="0.189"/>
+                            <GradientStop Color="#72FFFFFF" Offset="0.5"/>
+                            <GradientStop Color="#00FFFFFF" Offset="0.51"/>
+                        </LinearGradientBrush>
+                    </Border.Background>
+                </Border>
+                <Path x:Name="BtnArrow" Margin="0,0,7,0" Width="6" Data="F1 M 301.14,-189.041L 311.57,-189.041L 306.355,-182.942L 301.14,-189.041 Z " HorizontalAlignment="Right" Stretch="Uniform">
+                    <Path.Fill>
+                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                            <GradientStop Color="{StaticResource Arrow}" Offset="0"/>
+                            <GradientStop Color="#FF000000" Offset="1"/>
+                        </LinearGradientBrush>
+                    </Path.Fill>
+                </Path>
+                <Rectangle x:Name="DisabledVisualElement" Margin="1" Fill="#00FFFFFF" RadiusX="3" RadiusY="3" IsHitTestVisible="false" Visibility="Collapsed"/>
+            </Grid>
+            <ControlTemplate.Triggers>
+                <Trigger Property="IsMouseOver" Value="true">
+                    <Trigger.ExitActions>
+                        <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                    </Trigger.ExitActions>
+                    <Trigger.EnterActions>
+                        <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                    </Trigger.EnterActions>
+
+                </Trigger>
+                <Trigger Property="IsChecked" Value="true"/>
+                <Trigger Property="IsPressed" Value="True">
+                    <Trigger.ExitActions>
+                        <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                    </Trigger.ExitActions>
+                    <Trigger.EnterActions>
+                        <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                    </Trigger.EnterActions>
+                </Trigger>
+                <Trigger Property="IsEnabled" Value="False">
+                    <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                    <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                </Trigger>
+            </ControlTemplate.Triggers>
+        </ControlTemplate>
+
+
+        <ControlTemplate x:Key="ComboBoxTextBox" TargetType="{x:Type TextBox}">
+            <Border x:Name="PART_ContentHost" Focusable="False" Background="{TemplateBinding Background}"/>
+        </ControlTemplate>
+
+
+        <Style TargetType="{x:Type ComboBox}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+<Setter Property="Template" Value="{DynamicResource ComboBoxTemplate}" />
+        </Style>
+    
+    <ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <ToggleButton Grid.Column="2" Template="{DynamicResource ComboBoxToggleButton}" x:Name="ToggleButton" Focusable="false" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press"/>
+                            <ContentPresenter HorizontalAlignment="Left" Margin="3,3,23,3" x:Name="ContentSite" VerticalAlignment="Center" Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" IsHitTestVisible="False"/>
+
+                            <TextBox Visibility="Hidden" Template="{DynamicResource ComboBoxTextBox}" HorizontalAlignment="Left" Margin="3,3,23,3" x:Name="PART_EditableTextBox" Style="{x:Null}" VerticalAlignment="Center" Focusable="True" Background="Transparent" IsReadOnly="{TemplateBinding IsReadOnly}"/>
+                            <Rectangle x:Name="DisabledVisualElement" Fill="#A5FFFFFF" RadiusX="4" RadiusY="4" IsHitTestVisible="false" Visibility="Collapsed" />
+                            <Rectangle x:Name="FocusVisualElement" Margin="-1" Stroke="{StaticResource selectedStroke}" StrokeThickness="1" RadiusX="4" RadiusY="4" IsHitTestVisible="false" Opacity="0"/>
+                            <Popup IsOpen="{TemplateBinding IsDropDownOpen}" Placement="Bottom" x:Name="Popup" Focusable="False" AllowsTransparency="True" PopupAnimation="Slide">
+                                <Grid MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{TemplateBinding ActualWidth}" x:Name="DropDown" SnapsToDevicePixels="True">
+                                    <Border x:Name="DropDownBorder" Background="#FFFFFFFF" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="1" CornerRadius="1,1,3,3">
+                                        <ScrollViewer Margin="4,6,4,6"   SnapsToDevicePixels="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" CanContentScroll="True">
+
+                                            <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained"/>
+
+                                        </ScrollViewer>
+                                    </Border>
+                                </Grid>
+                            </Popup>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="HasItems" Value="false">
+                                <Setter Property="MinHeight" Value="95" TargetName="DropDownBorder"/>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                            <Trigger Property="IsGrouping" Value="true">
+                                <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
+                            </Trigger>
+                            <Trigger Property="AllowsTransparency" SourceName="Popup" Value="true">
+                                <Setter Property="CornerRadius" Value="4" TargetName="DropDownBorder"/>
+                                <Setter Property="Margin" Value="0,2,0,0" TargetName="DropDownBorder"/>
+                            </Trigger>
+                            <Trigger Property="IsEditable" Value="true">
+                                <Setter Property="IsTabStop" Value="false"/>
+                                <Setter Property="Visibility" Value="Visible" TargetName="PART_EditableTextBox"/>
+                                <Setter Property="Visibility" Value="Hidden" TargetName="ContentSite"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+
+        <Style d:IsControlPart="True" TargetType="{x:Type ComboBoxItem}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="Padding" Value="3" />
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ComboBoxItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0.73"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid SnapsToDevicePixels="true">
+                            <Rectangle x:Name="BackgroundGradientOver" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2"  Opacity="0"/>
+                            <Rectangle x:Name="BackgroundGradientSelected" Fill="{StaticResource BtnOverFill}" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" Opacity="0"/>
+                            <Rectangle x:Name="BackgroundHighlight" Margin="1" Stroke="#A0FFFFFF" RadiusX="1" RadiusY="1"/>
+                            <ContentPresenter
+                                       x:Name="contentPresenter"
+                                       Content="{TemplateBinding Content}"
+                                       ContentTemplate="{TemplateBinding ContentTemplate}"
+                                       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                                       Margin="{TemplateBinding Padding}"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+
+                            <Trigger Property="IsHighlighted" Value="true"/>
+                            <Trigger Property="Selector.IsSelected" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOff}" x:Name="SelectedOff_BeginStoryboard1"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOn}" x:Name="SelectedOn_BeginStoryboard1"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type ProgressBar}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ProgressBar}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="IndeterminateOn" RepeatBehavior="Forever">
+                                <DoubleAnimationUsingKeyFrames Storyboard.TargetName="IndeterminateGradientFill" Storyboard.TargetProperty="(Shape.Fill).(Brush.Transform).(TransformGroup.Children)[0].X" RepeatBehavior="Forever">
+                                    <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
+                                    <SplineDoubleKeyFrame KeyTime="00:00:.5" Value="20"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+
+                            <Border x:Name="PART_Track" BorderThickness="1" CornerRadius="3" Opacity="0.825">
+                                <Border.Background>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#FFFFFFFF"/>
+                                        <GradientStop Color="#FFD8D8D8" Offset="0.327"/>
+                                        <GradientStop Color="#FFDADADA" Offset="0.488"/>
+                                        <GradientStop Color="#FFBEBEBE" Offset="0.539"/>
+                                        <GradientStop Color="#FFD6D6D6" Offset="0.77"/>
+                                        <GradientStop Color="#FFFFFFFF" Offset="1"/>
+                                    </LinearGradientBrush>
+                                </Border.Background>
+                                <Border.BorderBrush>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#FFBBBBBB" Offset="0"/>
+                                        <GradientStop Color="#FF7E7E7E" Offset="1"/>
+                                    </LinearGradientBrush>
+                                </Border.BorderBrush>
+                            </Border>
+                            <Grid x:Name="IndeterminateRoot" Visibility="Collapsed">
+                                <Rectangle x:Name="IndeterminateSolidFill" Margin="1" Fill="#FF00C120" RadiusX="2" RadiusY="2"/>
+                                <Rectangle x:Name="ProgressBarRootGradient" Margin="1" RadiusX="1.5" RadiusY="1.5" Panel.ZIndex="1">
+                                    <Rectangle.Fill>
+                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                            <GradientStop Color="#FFE8FFEC" Offset="0"/>
+                                            <GradientStop Color="#84BDFFC9" Offset="0.516"/>
+                                            <GradientStop Color="#00D6D6D6" Offset="0.521"/>
+                                            <GradientStop Color="#FF7BFF94" Offset="1"/>
+                                        </LinearGradientBrush>
+                                    </Rectangle.Fill>
+                                </Rectangle>
+                                <Rectangle x:Name="IndeterminateGradientFill" Margin="1" StrokeThickness="1" RadiusX="2" RadiusY="2" Opacity="0.7">
+                                    <Rectangle.Fill>
+                                        <LinearGradientBrush EndPoint="0,1" StartPoint="20,1" MappingMode="Absolute" SpreadMethod="Repeat">
+                                            <LinearGradientBrush.Transform>
+                                                <TransformGroup>
+                                                    <TranslateTransform X="0"/>
+                                                    <SkewTransform AngleX="-10"/>
+                                                </TransformGroup>
+                                            </LinearGradientBrush.Transform>
+                                            <GradientStop Color="#FF95FFA8" Offset="0.129"/>
+                                            <GradientStop Color="#9159FF76" Offset="0.304"/>
+                                            <GradientStop Color="#0007B324" Offset="0.498"/>
+                                            <GradientStop Color="#8661FF7C" Offset="0.714"/>
+                                            <GradientStop Color="#FF8BFFA1" Offset="0.949"/>
+                                        </LinearGradientBrush>
+                                    </Rectangle.Fill>
+                                </Rectangle>
+                            </Grid>
+                            <Grid x:Name="DeterminateRoot">
+                                <Rectangle x:Name="PART_Indicator" Margin="1" RadiusX="1.5" RadiusY="1.5" HorizontalAlignment="Left" Opacity="0.83">
+                                    <Rectangle.Fill>
+                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                            <GradientStop Color="#FFE4FFDA" Offset="0"/>
+                                            <GradientStop Color="#FFBDF4C0" Offset="0.198"/>
+                                            <GradientStop Color="#FF9CEBAB" Offset="0.516"/>
+                                            <GradientStop Color="#FF00C523" Offset="0.521"/>
+                                            <GradientStop Color="#FF00D724" Offset="0.797"/>
+                                            <GradientStop Color="#FF10DC2E" Offset="1"/>
+                                        </LinearGradientBrush>
+                                    </Rectangle.Fill>
+                                </Rectangle>
+                            </Grid>
+                            <Border x:Name="DisabledVisualElement" Background="#A5FFFFFF" BorderBrush="#59C0C0C0" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Visibility="Collapsed"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                            <Trigger Property="IsIndeterminate" Value="True">
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource IndeterminateOn}"/>
+                                </Trigger.EnterActions>
+                                <Setter Property="Visibility" TargetName="IndeterminateRoot" Value="Visible"/>
+                                <Setter Property="Visibility" TargetName="DeterminateRoot" Value="Collapsed"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type TextBox}">
+            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
+            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+            <Setter Property="AllowDrop" Value="true"/>
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="BorderThickness" Value="1"/>
+<Setter Property="Template" Value="{DynamicResource TextBoxTemplate}" />
+        </Style>
+    
+    <ControlTemplate x:Key="TextBoxTemplate" TargetType="{x:Type TextBox}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Border x:Name="BorderBase" Background="{TemplateBinding Background}" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"/>
+                            <Border x:Name="Over" BorderBrush="{StaticResource TextBoxOver}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" Opacity="0"/>
+                            <ScrollViewer Margin="0" x:Name="PART_ContentHost" Padding="{TemplateBinding Padding}" />
+                            <Border x:Name="DisabledVisualElement" Background="#A5FFFFFF" BorderBrush="#59C0C0C0" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Visibility="Collapsed"/>
+                            <Border x:Name="FocusVisualElement" BorderBrush="{StaticResource TextBoxFocus}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsMouseOver" Value="True"/>
+                                    <Condition Property="IsFocused" Value="False"/>
+                                </MultiTrigger.Conditions>
+                                <MultiTrigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </MultiTrigger.ExitActions>
+                                <MultiTrigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </MultiTrigger.EnterActions>
+                            </MultiTrigger>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+
+        <Style TargetType="{x:Type PasswordBox}">
+            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
+            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+            <Setter Property="AllowDrop" Value="true"/>
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type PasswordBox}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Border x:Name="BorderBase" Background="{TemplateBinding Background}" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"/>
+                            <Border x:Name="Over" BorderBrush="{StaticResource TextBoxOver}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" Opacity="0"/>
+                            <ScrollViewer Margin="0" x:Name="PART_ContentHost" Padding="{TemplateBinding Padding}" />
+                            <Border x:Name="DisabledVisualElement" Background="#A5FFFFFF" BorderBrush="#59C0C0C0" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Visibility="Collapsed"/>
+                            <Border x:Name="FocusVisualElement" BorderBrush="{StaticResource TextBoxFocus}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsMouseOver" Value="True"/>
+                                    <Condition Property="IsFocused" Value="False"/>
+                                </MultiTrigger.Conditions>
+                                <MultiTrigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </MultiTrigger.ExitActions>
+                                <MultiTrigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </MultiTrigger.EnterActions>
+                            </MultiTrigger>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type RichTextBox}">
+            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
+            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+            <Setter Property="AllowDrop" Value="true"/>
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type RichTextBox}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Border x:Name="BorderBase" Background="{TemplateBinding Background}" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"/>
+                            <Border x:Name="Over" BorderBrush="{StaticResource TextBoxOver}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" Opacity="0"/>
+                            <ScrollViewer Margin="0" x:Name="PART_ContentHost" Padding="{TemplateBinding Padding}" />
+                            <Border x:Name="DisabledVisualElement" Background="#A5FFFFFF" BorderBrush="#59C0C0C0" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Visibility="Collapsed"/>
+                            <Border x:Name="FocusVisualElement" BorderBrush="{StaticResource TextBoxFocus}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" IsHitTestVisible="False" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsMouseOver" Value="True"/>
+                                    <Condition Property="IsFocused" Value="False"/>
+                                </MultiTrigger.Conditions>
+                                <MultiTrigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </MultiTrigger.ExitActions>
+                                <MultiTrigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </MultiTrigger.EnterActions>
+                            </MultiTrigger>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}"/>
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Label}">
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Label}">
+                        <Grid>
+                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsEnabled" Value="false"/>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Menu}">
+            <Setter Property="SnapsToDevicePixels" Value="True"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Menu}">
+                        <Grid>
+                            <Border x:Name="Border" Background="{StaticResource grayGradient}" />
+                            <StackPanel IsItemsHost="True" ClipToBounds="True" Orientation="Horizontal"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Background" Value="#A5FFFFFF" TargetName="Border"/>
+                                <Setter Property="BorderBrush" Value="#59C0C0C0" TargetName="Border"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <DropShadowBitmapEffect x:Key="PopupDropShadow" ShadowDepth="1.5" Softness="0.15"/>
+
+        <Style TargetType="{x:Type MenuItem}">
+            <Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
+            <Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
+            <Setter Property="Background" Value="Transparent"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type MenuItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HighlightOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HighlightOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
+                            <Grid Margin="1,1,1,1">
+
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition MinWidth="17" Width="Auto" SharedSizeGroup="MenuItemIconColumnGroup"/>
+                                    <ColumnDefinition Width="*"/>
+                                    <ColumnDefinition Width="Auto" SharedSizeGroup="MenuItemIGTColumnGroup"/>
+                                    <ColumnDefinition Width="14"/>
+                                </Grid.ColumnDefinitions>
+                                <Rectangle x:Name="BackgroundGradientOver" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2"  Opacity="0" Grid.ColumnSpan="4"/>
+                                <Rectangle x:Name="BackgroundGradientSelected" Fill="{StaticResource BtnOverFill}" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" Opacity="0" Grid.ColumnSpan="4"/>
+                                <Rectangle x:Name="BackgroundHighlight" Margin="1" Stroke="#A0FFFFFF" RadiusX="1" RadiusY="1" Grid.ColumnSpan="4" Opacity="0"/>
+                                <ContentPresenter Margin="4,0,6,0" x:Name="Icon" VerticalAlignment="Center" ContentSource="Icon"/>
+                                <Grid Visibility="Hidden" Margin="4,0,6,0" x:Name="GlyphPanel" VerticalAlignment="Center">
+                                    <Path x:Name="GlyphPanelpath" VerticalAlignment="Center" Fill="{TemplateBinding Foreground}" Data="M0,2 L0,4.8 L2.5,7.4 L7.1,2.8 L7.1,0 L2.5,4.6 z" FlowDirection="LeftToRight"/>
+                                </Grid>
+
+                                <ContentPresenter Grid.Column="1" Margin="{TemplateBinding Padding}" x:Name="HeaderHost" RecognizesAccessKey="True" ContentSource="Header"/>
+
+                                <Grid Grid.Column="3" Margin="4,0,6,0" x:Name="ArrowPanel" VerticalAlignment="Center">
+                                    <Path x:Name="ArrowPanelPath" VerticalAlignment="Center" Fill="{TemplateBinding Foreground}" Data="M0,0 L0,8 L4,4 z"/>
+                                </Grid>
+
+                                <Popup IsOpen="{Binding Path=IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" x:Name="SubMenuPopup" Focusable="false" AllowsTransparency="true" PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}" VerticalOffset="-3">
+                                    <Grid x:Name="SubMenu">
+                                        <Border x:Name="SubMenuBorder" Background="#FFFFFFFF" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="1"/>
+
+                                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
+                                    </Grid>
+                                </Popup>
+
+                            </Grid>
+                        </Border>
+
+                        <ControlTemplate.Triggers>
+
+                            <Trigger Property="Role" Value="TopLevelHeader">
+                                <Setter Property="Margin" Value="0,1,0,1"/>
+                                <Setter Property="Padding" Value="6,3,6,3"/>
+                                <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
+                                <Setter Property="Placement" Value="Bottom" TargetName="SubMenuPopup"/>
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
+                            </Trigger>
+
+                            <Trigger Property="Role" Value="TopLevelItem">
+                                <Setter Property="Margin" Value="0,1,0,1"/>
+                                <Setter Property="Padding" Value="6,3,6,3"/>
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
+                            </Trigger>
+
+                            <Trigger Property="Role" Value="SubmenuHeader">
+                                <Setter Property="DockPanel.Dock" Value="Top"/>
+                                <Setter Property="Padding" Value="0,2,0,2"/>
+                                <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
+                            </Trigger>
+
+                            <Trigger Property="Role" Value="SubmenuItem">
+                                <Setter Property="DockPanel.Dock" Value="Top"/>
+                                <Setter Property="Padding" Value="0,2,0,2"/>
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
+                            </Trigger>
+                            <Trigger Property="IsSuspendingPopupAnimation" Value="true">
+                                <Setter Property="PopupAnimation" Value="None" TargetName="SubMenuPopup"/>
+                            </Trigger>
+
+                            <Trigger Property="Icon" Value="{x:Null}">
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="Icon"/>
+                            </Trigger>
+
+                            <Trigger Property="IsChecked" Value="true">
+                                <Setter Property="Visibility" Value="Visible" TargetName="GlyphPanel"/>
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="Icon"/>
+                            </Trigger>
+
+                            <Trigger Property="AllowsTransparency" SourceName="SubMenuPopup" Value="true">
+                                <Setter Property="Margin" Value="0,0,3,3" TargetName="SubMenu"/>
+                                <Setter Property="SnapsToDevicePixels" Value="true" TargetName="SubMenu"/>
+                                <Setter Property="BitmapEffect" Value="{DynamicResource PopupDropShadow}" TargetName="SubMenuBorder"/>
+                            </Trigger>
+
+                            <Trigger Property="IsHighlighted" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HighlightOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HighlightOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Separator}">
+            <Setter Property="Height" Value="1"/>
+            <Setter Property="Margin" Value="0,2,0,2"/>
+            <Setter Property="Focusable" Value="false"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Separator}">
+                        <Border BorderBrush="#FF888888" BorderThickness="1"/>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type TabControl}">
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Padding" Value="5"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TabControl}">
+                        <Grid ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition x:Name="ColumnDefinition0" />
+                                <ColumnDefinition x:Name="ColumnDefinition1" Width="0" />
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto" x:Name="RowDefinition0" />
+                                <RowDefinition Height="*" x:Name="RowDefinition1" />
+                            </Grid.RowDefinitions>
+                            <Border CornerRadius="2,2,0,0" x:Name="border" Margin="0,0,0,-1.5" Panel.ZIndex="100">
+                                <TabPanel x:Name="HeaderPanel" IsItemsHost="true" Panel.ZIndex="1" KeyboardNavigation.TabIndex="1" RenderTransformOrigin="0.5,0.5" Width="Auto" Height="Auto" Margin="2,0,0,0">
+                                    <TabPanel.LayoutTransform>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1" />
+                                            <SkewTransform AngleX="0" AngleY="0" />
+                                            <RotateTransform Angle="0" />
+                                            <TranslateTransform X="0" Y="0" />
+                                        </TransformGroup>
+                                    </TabPanel.LayoutTransform>
+                                    <TabPanel.RenderTransform>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1" />
+                                            <SkewTransform AngleX="0" AngleY="0" />
+                                            <RotateTransform />
+                                            <TranslateTransform X="0" Y="0" />
+                                        </TransformGroup>
+                                    </TabPanel.RenderTransform>
+
+                                </TabPanel>
+                            </Border>
+                            <Border Grid.Row="1" x:Name="ContentPanel" MinHeight="10" MinWidth="10" Background="#FFFFFFFF" BorderBrush="#FF979AA2" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1">
+                                <ContentPresenter Margin="4" x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
+                            </Border>
+                            <Border x:Name="DisabledVisualTop" Grid.Row="1" Grid.RowSpan="2" Background="#8CFFFFFF" CornerRadius="1" Panel.ZIndex="1" IsHitTestVisible="False" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="TabStripPlacement" Value="Bottom">
+                                <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0" />
+                                <Setter Property="Height" TargetName="RowDefinition0" Value="*" />
+                                <Setter Property="Height" TargetName="RowDefinition1" Value="Auto" />
+                                <Setter Property="Grid.Row" TargetName="border" Value="1"/>
+                                <Setter Property="CornerRadius" TargetName="ContentPanel" Value="2,2,0,0"/>
+                                <Setter Property="CornerRadius" TargetName="border" Value="0,0,2,2"/>
+                                <Setter Property="Margin" TargetName="border" Value="0,-1.5,0,0"/>
+                            </Trigger>
+                            <Trigger Property="TabStripPlacement" Value="Left">
+
+                                <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0" />
+                                <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0" />
+                                <Setter Property="Grid.Column" TargetName="ContentPanel" Value="1" />
+                                <Setter Property="Width" TargetName="ColumnDefinition0" Value="Auto" />
+                                <Setter Property="Width" TargetName="ColumnDefinition1" Value="*" />
+                                <Setter Property="Height" TargetName="RowDefinition0" Value="*" />
+                                <Setter Property="Height" TargetName="RowDefinition1" Value="0" />
+                                <Setter Property="Grid.Column" TargetName="border" Value="0"/>
+                                <Setter Property="Margin" TargetName="border" Value="0,0,-1,0"/>
+                                <Setter Property="Margin" TargetName="ContentPanel" Value="0,0,0,0"/>
+                                <Setter Property="CornerRadius" TargetName="border" Value="0,2,2,0"/>
+                                <Setter Property="CornerRadius" TargetName="ContentPanel" Value="0,2,2,0"/>
+                                <Setter Property="Margin" TargetName="HeaderPanel" Value="5,2,0,0"/>
+
+                            </Trigger>
+                            <Trigger Property="TabStripPlacement" Value="Right">
+                                <Setter Property="Grid.Row" TargetName="HeaderPanel" Value="0" />
+                                <Setter Property="Grid.Row" TargetName="ContentPanel" Value="0" />
+                                <Setter Property="Grid.Column" TargetName="ContentPanel" Value="0" />
+                                <Setter Property="Width" TargetName="ColumnDefinition0" Value="*" />
+                                <Setter Property="Width" TargetName="ColumnDefinition1" Value="Auto" />
+                                <Setter Property="Height" TargetName="RowDefinition0" Value="*" />
+                                <Setter Property="Height" TargetName="RowDefinition1" Value="0" />
+                                <Setter Property="Grid.Column" TargetName="border" Value="1"/>
+                                <Setter Property="CornerRadius" TargetName="ContentPanel" Value="2,0,0,2"/>
+                                <Setter Property="CornerRadius" TargetName="border" Value="0,2,2,0"/>
+                                <Setter Property="Margin" TargetName="border" Value="-6,2,0,0"/>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
+                                <Setter Property="Opacity" TargetName="DisabledVisualTop" Value="1"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style d:IsControlPart="True" TargetType="{x:Type TabItem}">
+            <Setter Property="HorizontalContentAlignment" Value="Center"/>
+            <Setter Property="VerticalContentAlignment" Value="Center"/>
+            <Setter Property="Padding" Value="10,6,10,6"/>
+            <Setter Property="MinWidth" Value="5"/>
+            <Setter Property="MinHeight" Value="5"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TabItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="SelectedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TemplateTopSelected" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TemplateTopUnselected" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TemplateTopSelected" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TemplateTopUnselected" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TopUnselectedOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="TopUnselectedOver" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid x:Name="grid">
+                            <Grid.LayoutTransform>
+                                <TransformGroup>
+                                    <ScaleTransform ScaleX="1" ScaleY="1"/>
+                                    <SkewTransform AngleX="0" AngleY="0"/>
+                                    <RotateTransform Angle="0"/>
+                                    <TranslateTransform X="0" Y="0"/>
+                                </TransformGroup>
+                            </Grid.LayoutTransform>
+
+
+                            <Grid x:Name="TemplateTopSelected" Margin="-2,0,-2,0" Panel.ZIndex="0" Opacity="0">
+                                <Grid>
+                                    <Border x:Name="BackgroundTop" Background="#FFFFFFFF" BorderBrush="#FF979AA2" BorderThickness="1,1,1,0" />
+                                </Grid>
+                                <Border x:Name="DisabledVisualTopSelected" Background="#8CFFFFFF" IsHitTestVisible="false" Visibility="Collapsed" />
+                            </Grid>
+                            <Grid x:Name="TemplateTopUnselected" Margin="0,2,0,1" >
+                                <Grid>
+                                    <Border x:Name="TopUnselected_Background" BorderBrush="#FF94979F" BorderThickness="1,1,1,0">
+                                        <Border.Background>
+                                            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                                <GradientStop Color="#FFFFFFFF" Offset="0"/>
+                                                <GradientStop Color="#FFF3F3F3" Offset="0.152"/>
+                                                <GradientStop Color="#FFF3F3F3" Offset="0.456"/>
+                                                <GradientStop Color="#FFEBEBEB" Offset="0.465"/>
+                                                <GradientStop Color="#FFD6D6D5" Offset="1"/>
+                                            </LinearGradientBrush>
+                                        </Border.Background>
+                                    </Border>
+                                    <Border x:Name="TopUnselectedOver" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TabOverStroke}" BorderThickness="1,1,1,0" Opacity="0"/>
+                                    <Border x:Name="TopUnselected_Highlight" Margin="1" BorderBrush="#FFFFFFFF" BorderThickness="1,1,1,0"/>
+                                </Grid>
+                                <Border x:Name="DisabledVisualTopUnSelected" Background="#8CFFFFFF" IsHitTestVisible="false" Visibility="Collapsed"/>
+                            </Grid>
+
+
+                            <ContentPresenter HorizontalAlignment="Center" Margin="{TemplateBinding Padding}" x:Name="ContentSite" VerticalAlignment="Center" RecognizesAccessKey="True" ContentSource="Header" Opacity="1"/>
+
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="TabStripPlacement" Value="Left">
+                                <Setter Property="LayoutTransform" TargetName="grid">
+                                    <Setter.Value>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1" />
+                                            <SkewTransform AngleX="0" AngleY="0" />
+                                            <RotateTransform Angle="-90" />
+                                            <TranslateTransform X="0" Y="0" />
+                                        </TransformGroup>
+                                    </Setter.Value>
+                                </Setter>
+                            </Trigger>
+                            <Trigger Property="TabStripPlacement" Value="Right">
+                                <Setter Property="LayoutTransform" TargetName="grid">
+                                    <Setter.Value>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1" />
+                                            <SkewTransform AngleX="0" AngleY="0" />
+                                            <RotateTransform Angle="90" />
+                                            <TranslateTransform X="0" Y="0" />
+                                        </TransformGroup>
+                                    </Setter.Value>
+                                </Setter>
+                            </Trigger>
+                            <Trigger Property="TabStripPlacement" Value="Bottom">
+                                <Setter Property="LayoutTransform" TargetName="ContentSite">
+                                    <Setter.Value>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1" />
+                                            <SkewTransform AngleX="0" AngleY="0" />
+                                            <RotateTransform Angle="180" />
+                                            <TranslateTransform X="0" Y="0" />
+                                        </TransformGroup>
+                                    </Setter.Value>
+                                </Setter>
+                                <Setter Property="LayoutTransform" TargetName="grid">
+                                    <Setter.Value>
+                                        <TransformGroup>
+                                            <ScaleTransform ScaleX="1" ScaleY="1"/>
+                                            <SkewTransform AngleX="0" AngleY="0"/>
+                                            <RotateTransform Angle="180"/>
+                                            <TranslateTransform X="0" Y="0"/>
+                                        </TransformGroup>
+                                    </Setter.Value>
+                                </Setter>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </MultiTrigger.ExitActions>
+                                <MultiTrigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" x:Name="HoverOn_BeginStoryboard"/>
+                                </MultiTrigger.EnterActions>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsMouseOver" Value="True" />
+                                    <Condition Property="Selector.IsSelected" Value="False" />
+                                </MultiTrigger.Conditions>
+                            </MultiTrigger>
+                            <Trigger Property="IsSelected" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOff}" x:Name="SelectedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOn}"/>
+                                </Trigger.EnterActions>
+                                <Setter Property="Panel.ZIndex" Value="100" />
+
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsMouseOver" Value="True" SourceName="grid" />
+                                    <Condition Property="Selector.IsSelected" Value="True" />
+                                </MultiTrigger.Conditions>
+                            </MultiTrigger>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}" />
+                                <Setter Property="Visibility" TargetName="DisabledVisualTopUnSelected" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+            <Setter Property="Foreground" Value="{DynamicResource OutsideFontColor}"/>
+        </Style>
+
+        <Style x:Key="NuclearSliderThumb" d:IsControlPart="True" TargetType="{x:Type Thumb}">
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="Height" Value="21"/>
+            <Setter Property="Width" Value="11"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Thumb}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Over" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="Press" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="Press" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Path x:Name="Base" Stretch="Fill" Stroke="#FF707070" StrokeThickness="1" StrokeLineJoin="Round" Data="F1 M 0,1 C 0,0 1,0 1,0 L 7,0 C 7,0 7.750000,0 8,1 C 8.013672,1.054688 8,11.875000 8,11.875000 L 4.625000,15.250000 C 4.312500,15.583984 3.625000,15.250000 3.625000,15.250000 L 0,11.750000 C 0,11.750000 0,1.062500 0,1 Z">
+                                <Path.Fill>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#FFFFFFFF" Offset="0"/>
+                                        <GradientStop Color="#FFF2F2F2" Offset="0.498"/>
+                                        <GradientStop Color="#FFE1E1E1" Offset="0.498"/>
+                                        <GradientStop Color="#FFF3F3F3" Offset="0.143"/>
+                                        <GradientStop Color="#FFD1D1D1" Offset="1"/>
+                                    </LinearGradientBrush>
+                                </Path.Fill>
+                            </Path>
+                            <Path x:Name="Over" Fill="{StaticResource ThumbOver}" Stroke="{StaticResource TextBoxPressBrush}" Stretch="Fill" Data="F1 M 0,1 C 0,0 1,0 1,0 L 7,0 C 7,0 7.750000,0 8,1 C 8.013672,1.054688 8,11.875000 8,11.875000 L 4.625000,15.250000 C 4.312500,15.583984 3.625000,15.250000 3.625000,15.250000 L 0,11.750000 C 0,11.750000 0,1.062500 0,1 Z" Opacity="0"/>
+                            <Path x:Name="Press" Fill="{StaticResource ThumbPress}" Stroke="{StaticResource btnPressStroke2}" Stretch="Fill" Data="F1 M 0,1 C 0,0 1,0 1,0 L 7,0 C 7,0 7.750000,0 8,1 C 8.013672,1.054688 8,11.875000 8,11.875000 L 4.625000,15.250000 C 4.312500,15.583984 3.625000,15.250000 3.625000,15.250000 L 0,11.750000 C 0,11.750000 0,1.062500 0,1 Z" Opacity="0"/>
+                            <Path x:Name="Highlight" Margin="1" Stroke="#FFFFFFFF" Stretch="Fill" Data="F1 M 0,1 C 0,0 1,0 1,0 L 7,0 C 7,0 7.750000,0 8,1 C 8.013672,1.054688 8,11.875000 8,11.875000 L 4.625000,15.250000 C 4.312500,15.583984 3.625000,15.250000 3.625000,15.250000 L 0,11.750000 C 0,11.750000 0,1.062500 0,1 Z"/>
+                            <Path x:Name="DisabledVisualElement" Fill="#FFFFFFFF" Stroke="#FFFFFFFF" StrokeThickness="1" StrokeLineJoin="Round" Stretch="Fill" Opacity="0.5" Data="F1 M 0,1 C 0,0 1,0 1,0 L 7,0 C 7,0 7.750000,0 8,1 C 8.013672,1.054688 8,11.875000 8,11.875000 L 4.625000,15.250000 C 4.312500,15.583984 3.625000,15.250000 3.625000,15.250000 L 0,11.750000 C 0,11.750000 0,1.062500 0,1 Z" IsHitTestVisible="false" Visibility="Collapsed" />
+                            <Path x:Name="FocusVisualElement" Margin="-1" Stroke="{StaticResource btnFocus}" StrokeThickness="1"  StrokeLineJoin="Round" Stretch="Fill" Data="F1 M 0.009766,1.453125 C 0.291016,0.093750 1.509766,0.000000 1.509766,0.000000 L 6.509766,0.000000 C 6.509766,0.000000 7.728516,0.000000 8.009766,1.500000 L 8.009766,11.500000 L 4.988770,15.200195 C 4.197266,15.854492 3.384766,15.166992 3.384766,15.166992 L 0.009766,11.500000 C 0.009766,11.500000 -0.012207,1.560059 0.009766,1.453125 Z" IsHitTestVisible="false" Opacity="0"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsFocused" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOff}" x:Name="FocusedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource FocusedOn}" x:Name="FocusedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="True">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="HoverOff_BeginStoryboard" Storyboard="{StaticResource HoverOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsDragging" Value="True">
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="PressedOn_BeginStoryboard" Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="PressedOff_BeginStoryboard" Storyboard="{StaticResource PressedOff}"/>
+                                </Trigger.ExitActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type Slider}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Slider}">
+                        <Grid x:Name="GridRoot">
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
+                                <RowDefinition Height="Auto"/>
+                            </Grid.RowDefinitions>
+
+                            <TickBar Visibility="Collapsed" x:Name="TopTick" Height="4" SnapsToDevicePixels="True" Placement="Top" Fill="#FF405A78"/>
+                            <Rectangle Margin="5.5,0,5.5,0" Grid.Column="0" Grid.ColumnSpan="3" Height="6" RadiusX="3" RadiusY="3">
+                                <Rectangle.Fill>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#FFB0B0B0" Offset="0.341"/>
+                                        <GradientStop Color="#FFE7EAEA" Offset="0.346"/>
+                                    </LinearGradientBrush>
+                                </Rectangle.Fill>
+                            </Rectangle>
+
+                            <Track x:Name="PART_Track">
+                                <Track.Thumb>
+                                    <Thumb Style="{DynamicResource NuclearSliderThumb}"/>
+                                </Track.Thumb>
+                                <Track.IncreaseRepeatButton>
+                                    <RepeatButton Style="{DynamicResource NuclearScrollRepeatButtonStyle}" Command="Slider.IncreaseLarge"/>
+                                </Track.IncreaseRepeatButton>
+                                <Track.DecreaseRepeatButton>
+                                    <RepeatButton Style="{DynamicResource NuclearScrollRepeatButtonStyle}" Command="Slider.DecreaseLarge"/>
+                                </Track.DecreaseRepeatButton>
+                            </Track>
+
+                            <TickBar Visibility="Collapsed" Grid.Row="2" x:Name="BottomTick" Height="4" SnapsToDevicePixels="True" Placement="Bottom" Fill="{TemplateBinding Foreground}"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="TickPlacement" Value="TopLeft">
+                                <Setter Property="Visibility" Value="Visible" TargetName="TopTick"/>
+                            </Trigger>
+                            <Trigger Property="TickPlacement" Value="BottomRight">
+                                <Setter Property="Visibility" Value="Visible" TargetName="BottomTick"/>
+                            </Trigger>
+                            <Trigger Property="TickPlacement" Value="Both">
+                                <Setter Property="Visibility" Value="Visible" TargetName="TopTick"/>
+                                <Setter Property="Visibility" Value="Visible" TargetName="BottomTick"/>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false"/>
+
+                            <Trigger Property="Orientation" Value="Vertical">
+                                <Setter Property="LayoutTransform" TargetName="GridRoot">
+                                    <Setter.Value>
+                                        <RotateTransform Angle="-90"/>
+                                    </Setter.Value>
+                                </Setter>
+                                <Setter TargetName="PART_Track" Property="Orientation" Value="Horizontal"/>
+                            </Trigger>
+
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type TreeView}">
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="BorderBrush" Value="{StaticResource btnPressStroke2}"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="Cursor" Value="Arrow"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TreeView}">
+                        <Grid>
+                            <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2">
+                                <ScrollViewer   Focusable="False" Background="{TemplateBinding Background}" Padding="4" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" CanContentScroll="False">
+                                    <ItemsPresenter/>
+                                </ScrollViewer>
+                            </Border>
+                        </Grid>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="NuclearTreeViewItemToggleButton" d:IsControlPart="True" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Focusable" Value="False"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CheckedVisual" Storyboard.TargetProperty="(Shape.Fill)">
+                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.1000000" Value="{StaticResource treeviewArrowHover}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="UncheckedVisual" Storyboard.TargetProperty="(Shape.Fill)">
+                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.1000000" Value="{StaticResource treeviewArrowHover}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CheckedVisual" Storyboard.TargetProperty="(Shape.Fill)">
+                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.4000000" Value="{StaticResource treeviewArrowChecked}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="UncheckedVisual" Storyboard.TargetProperty="(Shape.Fill)">
+                                    <DiscreteObjectKeyFrame KeyTime="00:00:00.4000000" Value="{StaticResource treeviewArrowUnchecked}"/>
+                                </ObjectAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="UncheckedVisual" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="CheckedVisual" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="UncheckedVisual" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="CheckedVisual" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid HorizontalAlignment="Right" Margin="2,2,5,2">
+                            <Path x:Name="UncheckedVisual" Height="9" Width="6" HorizontalAlignment="Right" VerticalAlignment="Center" Fill="{StaticResource treeviewArrowUnchecked}" StrokeLineJoin="Miter" Data="M 0,0 L 0,9 L 5,4.5 Z"/>
+                            <Path x:Name="CheckedVisual" Height="6" Width="6" HorizontalAlignment="Right" VerticalAlignment="Center" Fill="{StaticResource treeviewArrowChecked}" StrokeLineJoin="Miter" Opacity="0" Data="M 6,0 L 6,6 L 0,6 Z"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsChecked" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style d:IsControlPart="True" TargetType="{x:Type TreeViewItem}">
+            <Setter Property="Background" Value="Transparent"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Padding" Value="5,3,15,3"/>
+            <Setter Property="Cursor" Value="Arrow"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TreeViewItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="SelectedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="select_highlight" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="select_gradient" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="select_highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="hover_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="0.65"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="highlight" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="hover_gradient" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="highlight" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid>
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition MinWidth="19" Width="Auto"/>
+                                <ColumnDefinition Width="Auto"/>
+                                <ColumnDefinition Width="*"/>
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto"/>
+                                <RowDefinition/>
+                            </Grid.RowDefinitions>
+                            <ToggleButton x:Name="Expander" Style="{DynamicResource NuclearTreeViewItemToggleButton}" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press"/>
+                            <Rectangle x:Name="select_gradient" Grid.Column="1" Fill="{StaticResource BtnOverFill}" Stroke="{StaticResource selectedStroke}" StrokeThickness="1" RadiusX="2" RadiusY="2" Opacity="0" IsHitTestVisible="False"/>
+                            <Rectangle x:Name="select_highlight" Margin="1" Grid.Column="1" Stroke="#A0FFFFFF" Opacity="0"/>
+                            <Rectangle x:Name="inactive" Grid.Column="1" Fill="#FF999999" Stroke="#FF333333" StrokeThickness="1" RadiusX="2" RadiusY="2" Opacity="0" IsHitTestVisible="False"/>
+                            <Rectangle x:Name="hover_gradient" Grid.Column="1" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" StrokeThickness="1" RadiusX="2" RadiusY="2" Opacity="0" IsHitTestVisible="False"/>
+                            <Rectangle x:Name="highlight" Grid.Column="1" Margin="1" StrokeThickness="1" RadiusX="1" RadiusY="1" Opacity="0" IsHitTestVisible="False" Stroke="#FFFFFFFF"/>
+                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" x:Name="PART_Header" ContentSource="Header" Grid.Column="1" Margin="{TemplateBinding Padding}" />
+
+                            <ItemsPresenter Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" x:Name="ItemsHost"/>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="true" SourceName="PART_Header" >
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}" />
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsExpanded" Value="false">
+                                <Setter Property="Visibility" Value="Collapsed" TargetName="ItemsHost"/>
+                            </Trigger>
+                            <Trigger Property="HasItems" Value="false">
+                                <Setter Property="Visibility" Value="Hidden" TargetName="Expander"/>
+                            </Trigger>
+                            <Trigger Property="IsSelected" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource SelectedOn}" />
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsSelected" Value="true"/>
+                                    <Condition Property="IsSelectionActive" Value="false"/>
+                                </MultiTrigger.Conditions>
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
+                            </MultiTrigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style x:Key="{x:Static ToolBar.ButtonStyleKey}" TargetType="{x:Type Button}" BasedOn="{x:Null}">
+            <Setter Property="Foreground" Value="{StaticResource ButtonFontColor}"/>
+                                                       <Setter Property="FontSize" Value="10"/>
+                               <Setter Property="MinHeight" Value="18"/>
+                               <Setter Property="MinWidth" Value="50"/>
+            <Setter Property="Padding" Value="3"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource NuclearButtonFocusVisual}"/>
+            <Setter Property="Template" Value="{DynamicResource ButtonTemplate}" />
+        </Style>
+
+        <Style x:Key="{x:Static ToolBar.CheckBoxStyleKey}" TargetType="{x:Type CheckBox}">
+                               <Setter Property="FontSize" Value="10"/>
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource CheckBoxFocusVisual}"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Padding" Value="4,1,0,0"/>
+
+            <Setter Property="Template" Value="{DynamicResource CheckBoxTemplate}" />
+        </Style>
+
+        <Style x:Key="{x:Static ToolBar.RadioButtonStyleKey}" TargetType="{x:Type RadioButton}">
+                               <Setter Property="FontSize" Value="10"/>
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="FocusVisualStyle" Value="{DynamicResource RadioButtonFocusVisual}"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="VerticalContentAlignment" Value="Top"/>
+            <Setter Property="Padding" Value="4,1,0,0"/>
+            <Setter Property="Template" Value="{DynamicResource RadioButtonTemplate}" />
+        </Style>
+
+        <Style x:Key="{x:Static ToolBar.ComboBoxStyleKey}" TargetType="{x:Type ComboBox}">
+                               <Setter Property="FontSize" Value="10"/>
+            <Setter Property="SnapsToDevicePixels" Value="true"/>
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template" Value="{DynamicResource ComboBoxTemplate}" />
+        </Style>
+
+        <Style x:Key="{x:Static ToolBar.TextBoxStyleKey}" TargetType="{x:Type TextBox}">
+                               <Setter Property="FontSize" Value="10"/>
+            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
+            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+            <Setter Property="AllowDrop" Value="true"/>
+            <Setter Property="Background" Value="#FFFFFFFF"/>
+            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
+            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
+            <Setter Property="Padding" Value="4"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Template" Value="{DynamicResource TextBoxTemplate}" />
+        </Style>
+
+        <LinearGradientBrush x:Key="ToolBarHorizontalBackground" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="#FFFFFF" Offset="0"/>
+            <GradientStop Color="#FFFBFF" Offset="0.5"/>
+            <GradientStop Color="#F7F7F7" Offset="1"/>
+        </LinearGradientBrush>
+        <LinearGradientBrush x:Key="ToolBarToggleButtonHorizontalBackground" EndPoint="0,1" StartPoint="0,0">
+            <GradientStop Color="#ECECEC" Offset="0"/>
+            <GradientStop Color="#DDDDDD" Offset="0.5"/>
+            <GradientStop Color="#A0A0A0" Offset="1"/>
+        </LinearGradientBrush>
+        <SolidColorBrush x:Key="ToolBarButtonHover" Color="#FF818181" />
+        <SolidColorBrush x:Key="ToolBarGripper" Color="#C6C3C6"/>
+        <Style x:Key="ToolBarHorizontalOverflowButtonStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Background" Value="{StaticResource ToolBarToggleButtonHorizontalBackground}"/>
+            <Setter Property="MinHeight" Value="0"/>
+            <Setter Property="MinWidth" Value="0"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Border SnapsToDevicePixels="true" x:Name="Bd" CornerRadius="0,0,0,0" >
+                            <Grid>
+                                <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F" CornerRadius="0,3,3,0"/>
+                                <Border x:Name="BackgroundNorm_highlight" Margin="1" BorderBrush="#F2FFFFFF" BorderThickness="1,0,1,1" CornerRadius="0,3,3,0" Opacity="0.65"/>
+                                <Border x:Name="BackgroundOver" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TextBoxPressBrush}" BorderThickness="1" CornerRadius="0,3,3,0" Opacity="0"/>
+                                <Border x:Name="BackgroundOver_Highlight" Margin="1" Background="{StaticResource btnOverFillHighlight}" BorderBrush="{StaticResource hoverStroke}" BorderThickness="1,0,1,1" CornerRadius="0,3,3,0" Opacity="0"/>
+                                <Border x:Name="BackgroundPressed" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressBorder}" BorderThickness="1" CornerRadius="0,3,3,0" Opacity="0"/>
+                                <Border x:Name="BackgoundPressed_Highlight" Background="{StaticResource btnPressFillHighlight}" Margin="1" CornerRadius="0,3,3,0" Opacity="0"/>
+                                <Border x:Name="Background_overlay" Margin="1,1,1,0" BorderThickness="1" CornerRadius="0,3,3,0">
+                                    <Border.Background>
+                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                            <GradientStop Color="#00FFFFFF" Offset="0"/>
+                                            <GradientStop Color="#72FFFFFF" Offset="0.157"/>
+                                            <GradientStop Color="#72FFFFFF" Offset="0.5"/>
+                                            <GradientStop Color="#00FFFFFF" Offset="0.51"/>
+                                        </LinearGradientBrush>
+                                    </Border.Background>
+                                </Border>
+                                <Canvas SnapsToDevicePixels="true" HorizontalAlignment="Right" Margin="7,2,2,2" VerticalAlignment="Bottom" Width="6" Height="7">
+                                    <Path Stroke="White" Data="M 1 1.5 L 6 1.5"/>
+                                    <Path Stroke="{TemplateBinding Foreground}" Data="M 0 0.5 L 5 0.5"/>
+                                    <Path Fill="White" Data="M 0.5 4 L 6.5 4 L 3.5 7 Z"/>
+                                    <Path Fill="{TemplateBinding Foreground}" Data="M -0.5 3 L 5.5 3 L 2.5 6 Z"/>
+                                </Canvas>
+                                <Border x:Name="FocusVisualElement" Margin="1" BorderBrush="{StaticResource btnFocus}" BorderThickness="1" CornerRadius="2" IsHitTestVisible="false" Opacity="0"/>
+                                <Border x:Name="DisabledVisualElement" Background="#FFF1F1F1" BorderBrush="#FFB2B2B2" BorderThickness="1" CornerRadius="3" IsHitTestVisible="false" Opacity="0" />
+                            </Grid>
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsKeyboardFocused" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="FocusedOff_BeginStoryboard" Storyboard="{StaticResource FocusedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="FocusedOn_BeginStoryboard" Storyboard="{StaticResource FocusedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="true"/>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{StaticResource ToolBarGripper}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <SolidColorBrush x:Key="ToolBarSubMenuBackground" Color="#FFFDFDFD"/>
+        <SolidColorBrush x:Key="ToolBarMenuBorder" Color="#FFFFFFFF"/>
+        <Style x:Key="ToolBarThumbStyle" TargetType="{x:Type Thumb}">
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Thumb}">
+                        <Border SnapsToDevicePixels="True" Background="Transparent" Padding="{TemplateBinding Padding}" CornerRadius="0,0,0,0">
+                            <Rectangle>
+                                <Rectangle.Fill>
+                                    <DrawingBrush TileMode="Tile" Viewbox="0,0,4,4" ViewboxUnits="Absolute" Viewport="0,0,4,4" ViewportUnits="Absolute">
+                                        <DrawingBrush.Drawing>
+                                            <DrawingGroup>
+                                                <GeometryDrawing Brush="White" Geometry="M 1 1 L 1 3 L 3 3 L 3 1 z"/>
+                                                <GeometryDrawing Brush="{StaticResource ToolBarGripper}" Geometry="M 0 0 L 0 2 L 2 2 L 2 0 z"/>
+                                            </DrawingGroup>
+                                        </DrawingBrush.Drawing>
+                                    </DrawingBrush>
+                                </Rectangle.Fill>
+                            </Rectangle>
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Setter Property="Cursor" Value="SizeAll"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <LinearGradientBrush x:Key="ToolBarToggleButtonVerticalBackground" EndPoint="1,0" StartPoint="0,0">
+            <GradientStop Color="#ECECEC" Offset="0"/>
+            <GradientStop Color="#DDDDDD" Offset="0.5"/>
+            <GradientStop Color="#A0A0A0" Offset="1"/>
+        </LinearGradientBrush>
+        <Style x:Key="ToolBarVerticalOverflowButtonStyle" TargetType="{x:Type ToggleButton}">
+            <Setter Property="Background" Value="{StaticResource ToolBarToggleButtonVerticalBackground}"/>
+            <Setter Property="MinHeight" Value="0"/>
+            <Setter Property="MinWidth" Value="0"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <Border SnapsToDevicePixels="true" x:Name="Bd" Background="{TemplateBinding Background}" CornerRadius="0,0,3,3">
+                            <Canvas SnapsToDevicePixels="true" HorizontalAlignment="Right" Margin="2,7,2,2" VerticalAlignment="Bottom" Width="7" Height="6">
+                                <Path Stroke="White" Data="M 1.5 1 L 1.5 6"/>
+                                <Path Stroke="{TemplateBinding Foreground}" Data="M 0.5 0 L 0.5 5"/>
+                                <Path Fill="White" Data="M 3.5 0.5 L 7 3.5 L 4 6.5 Z"/>
+                                <Path Fill="{TemplateBinding Foreground}" Data="M 3 -0.5 L 6 2.5 L 3 5.5 Z"/>
+                            </Canvas>
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/>
+                            </Trigger>
+                            <Trigger Property="IsKeyboardFocused" Value="true">
+                                <Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{StaticResource ToolBarGripper}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <LinearGradientBrush x:Key="ToolBarVerticalBackground" EndPoint="1,0" StartPoint="0,0">
+            <GradientStop Color="#FFFFFF" Offset="0"/>
+            <GradientStop Color="#FFFBFF" Offset="0.5"/>
+            <GradientStop Color="#F7F7F7" Offset="1"/>
+        </LinearGradientBrush>
+        <Style TargetType="{x:Type ToolBar}">
+            <Setter Property="Background" Value="{StaticResource ToolBarHorizontalBackground}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToolBar}">
+                        <Grid SnapsToDevicePixels="true" Margin="3,1,1,1" x:Name="Grid">
+                            <Grid HorizontalAlignment="Right" x:Name="OverflowGrid" Margin="0,0,-3,0">
+                                <ToggleButton IsEnabled="{TemplateBinding HasOverflowItems}" FocusVisualStyle="{x:Null}" x:Name="OverflowButton" Style="{StaticResource ToolBarHorizontalOverflowButtonStyle}" ClickMode="Press" IsChecked="{Binding Path=IsOverflowOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>
+                                <Popup Focusable="false" AllowsTransparency="true" IsOpen="{Binding Path=IsOverflowOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" StaysOpen="False" x:Name="OverflowPopup">
+                                    <Border x:Name="Shdw" Background="#FFFFFFFF" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="1" CornerRadius="1,1,3,3">
+                                        <Border BorderThickness="1,1,1,1" >
+                                            <ToolBarOverflowPanel Focusable="true" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" FocusVisualStyle="{x:Null}" Margin="2" x:Name="PART_ToolBarOverflowPanel" WrapWidth="200" KeyboardNavigation.DirectionalNavigation="Cycle" KeyboardNavigation.TabNavigation="Cycle"/>
+                                        </Border>
+                                    </Border>
+                                </Popup>
+                            </Grid>
+                            <Border Margin="0,0,11,0" x:Name="MainPanelBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0,0,0,0" Padding="{TemplateBinding Padding}" >
+                                <Grid>
+                                    <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F"/>
+                                    <DockPanel KeyboardNavigation.TabIndex="1" KeyboardNavigation.TabNavigation="Local">
+                                        <Thumb Padding="6,5,1,6" Margin="-3,-1,0,0" x:Name="ToolBarThumb" Style="{StaticResource ToolBarThumbStyle}" Width="10"/>
+                                        <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Center" Margin="4,0,4,0" x:Name="ToolBarHeader" VerticalAlignment="Center" ContentSource="Header"/>
+                                        <Grid>
+                                            <Border x:Name="BackgroundNorm1" Background="{StaticResource grayGradient}" BorderThickness="0,1,0,1" BorderBrush="#FF8E8F8F"/>
+                                            <ToolBarPanel SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,1,2,2" x:Name="PART_ToolBarPanel" IsItemsHost="true" />
+                                        </Grid>
+                                    </DockPanel>
+                                </Grid>
+                            </Border>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsOverflowOpen" Value="true">
+                                <Setter Property="IsEnabled" TargetName="ToolBarThumb" Value="false"/>
+                            </Trigger>
+                            <Trigger Property="Header" Value="{x:Null}">
+                                <Setter Property="Visibility" TargetName="ToolBarHeader" Value="Collapsed"/>
+                            </Trigger>
+                            <Trigger Property="ToolBarTray.IsLocked" Value="true">
+                                <Setter Property="Visibility" TargetName="ToolBarThumb" Value="Collapsed"/>
+                            </Trigger>
+                            <Trigger Property="HasDropShadow" SourceName="OverflowPopup" Value="true">
+                                <Setter Property="Margin" TargetName="Shdw" Value="0,0,5,5"/>
+                                <Setter Property="SnapsToDevicePixels" TargetName="Shdw" Value="true"/>
+                                <Setter Property="Background" TargetName="Shdw" Value="#71000000"/>
+                            </Trigger>
+                            <Trigger Property="Orientation" Value="Vertical">
+                                <Setter Property="Margin" TargetName="Grid" Value="1,3,1,1"/>
+                                <Setter Property="Style" TargetName="OverflowButton" Value="{StaticResource ToolBarVerticalOverflowButtonStyle}"/>
+                                <Setter Property="Height" TargetName="ToolBarThumb" Value="10"/>
+                                <Setter Property="Width" TargetName="ToolBarThumb" Value="Auto"/>
+                                <Setter Property="Margin" TargetName="ToolBarThumb" Value="-1,-3,0,0"/>
+                                <Setter Property="Padding" TargetName="ToolBarThumb" Value="5,6,6,1"/>
+                                <Setter Property="Margin" TargetName="ToolBarHeader" Value="0,0,0,4"/>
+                                <Setter Property="Margin" TargetName="PART_ToolBarPanel" Value="1,0,2,2"/>
+                                <Setter Property="DockPanel.Dock" TargetName="ToolBarThumb" Value="Top"/>
+                                <Setter Property="DockPanel.Dock" TargetName="ToolBarHeader" Value="Top"/>
+                                <Setter Property="HorizontalAlignment" TargetName="OverflowGrid" Value="Stretch"/>
+                                <Setter Property="VerticalAlignment" TargetName="OverflowGrid" Value="Bottom"/>
+                                <Setter Property="Placement" TargetName="OverflowPopup" Value="Right"/>
+                                <Setter Property="Margin" TargetName="MainPanelBorder" Value="0,0,0,11"/>
+                                <Setter Property="Background" Value="{StaticResource ToolBarVerticalBackground}"/>
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+            <Setter Property="Foreground" Value="#FF000000"/>
+        </Style>
+
+        <BorderGapMaskConverter x:Key="BorderGapMaskConverter" />
+        <Style TargetType="{x:Type GroupBox}">
+            <Setter Property="BorderBrush" Value="#D5DFE5" />
+            <Setter Property="BorderThickness" Value="1" />
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type GroupBox}">
+                        <Grid SnapsToDevicePixels="true">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="6" />
+                                <ColumnDefinition Width="Auto" />
+                                <ColumnDefinition Width="*" />
+                                <ColumnDefinition Width="6" />
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="Auto" />
+                                <RowDefinition Height="Auto" />
+                                <RowDefinition Height="*" />
+                                <RowDefinition Height="6" />
+                            </Grid.RowDefinitions>
+                            <Border Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3" BorderThickness="1,1,1,1" CornerRadius="4" >
+                                <Border.OpacityMask>
+                                    <MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
+                                        <Binding Path="ActualWidth" ElementName="Header" />
+                                        <Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
+                                        <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
+                                    </MultiBinding>
+                                </Border.OpacityMask>
+                            </Border>
+                            <Border Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3" Background="#FFFFFFFF" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" x:Name="ContentBorder" />
+                            <!--<Border x:Name="DropDownBorder" Background="#FFFFFFFF" BorderBrush="{StaticResource TextBoxNorm}" BorderThickness="1" CornerRadius="1,1,3,3"/>-->
+                            <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F" CornerRadius="3,3,0,0" Grid.ColumnSpan="4" Grid.RowSpan="2"/>
+
+                            <Border x:Name="Header" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Padding="3,1,3,0">
+                                <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True" Margin="0,4,0,4" />
+                            </Border>
+
+                            <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="{TemplateBinding Padding}" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="2" />
+                        </Grid>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+            <Setter Property="Foreground" Value="{DynamicResource OutsideFontColor}"/>
+        </Style>
+        <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}" TargetType="{x:Type ScrollViewer}">
+            <Setter Property="Focusable" Value="false" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ScrollViewer}">
+                        <Grid SnapsToDevicePixels="true" Background="{TemplateBinding Background}">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="*" />
+                                <ColumnDefinition Width="Auto" />
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="*" />
+                                <RowDefinition Height="Auto" />
+                            </Grid.RowDefinitions>
+                            <DockPanel Margin="{TemplateBinding Padding}">
+                                <ScrollViewer Focusable="false" DockPanel.Dock="Top" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
+                                    <GridViewHeaderRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="2,0,2,0" AllowsColumnReorder="{Binding Path=TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContainerStyle="{Binding Path=TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContextMenu="{Binding Path=TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderTemplate="{Binding Path=TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderTemplateSelector="{Binding Path=TemplatedParent.View.ColumnHeaderTemplateSelector, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderToolTip="{Binding Path=TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}" Columns="{Binding Path=TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}" />
+
+                                </ScrollViewer>
+                                <ScrollContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" x:Name="PART_ScrollContentPresenter" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" CanContentScroll="{TemplateBinding CanContentScroll}" KeyboardNavigation.DirectionalNavigation="Local" />
+                            </DockPanel>
+                            <ScrollBar Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Cursor="Arrow" x:Name="PART_HorizontalScrollBar" Grid.Row="1" Orientation="Horizontal" ViewportSize="{TemplateBinding ViewportWidth}" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0.0" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
+                            <ScrollBar Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Cursor="Arrow" x:Name="PART_VerticalScrollBar" Grid.Column="1" Orientation="Vertical" ViewportSize="{TemplateBinding ViewportHeight}" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0.0" Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
+                            <DockPanel Grid.Column="1" Grid.Row="1" Background="{Binding Path=Background, ElementName=PART_VerticalScrollBar}" LastChildFill="false">
+                                <Rectangle Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Width="1" Fill="White" DockPanel.Dock="Left" />
+                                <Rectangle Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Height="1" Fill="White" DockPanel.Dock="Top" />
+                            </DockPanel>
+                        </Grid>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style TargetType="{x:Type ListView}">
+            <Setter Property="BorderThickness" Value="1" />
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
+            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
+            <Setter Property="ScrollViewer.CanContentScroll" Value="true" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="BorderBrush" Value="{StaticResource btnPressStroke2}"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="Padding" Value="1"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ListView}">
+                        <Border BorderThickness="{TemplateBinding BorderThickness}" Background="#FFFFFFFF" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="2">
+
+                            <ScrollViewer Padding="{TemplateBinding Padding}" Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
+                                <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
+                            </ScrollViewer>
+                        </Border>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsGrouping" Value="true">
+                                <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false"/>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="ListViewItemFocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Rectangle Stroke="#8E6EA6F5" StrokeThickness="1" RadiusX="2" RadiusY="2" />
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type ListViewItem}">
+            <Setter Property="FocusVisualStyle" Value="{StaticResource ListViewItemFocusVisual}" />
+            <Setter Property="BorderThickness" Value="1" />
+            <Setter Property="Margin" Value="0,0,0,1" />
+            <Setter Property="Padding" Value="5,2,5,2" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="Foreground" Value="{StaticResource OutsideFontColor}"/>
+            <Setter Property="Padding" Value="3" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ListViewItem}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0.73"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundGradientSelectedDisabled" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="SelectedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelected" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundGradientSelectedDisabled" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Border SnapsToDevicePixels="true" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" x:Name="border">
+
+                            <Grid Margin="2,0,2,0">
+                                <Rectangle x:Name="BackgroundGradientOver" Fill="{StaticResource hoverGradient}" Stroke="{StaticResource hoverStroke}" RadiusX="2" RadiusY="2" Opacity="0"/>
+                                <Rectangle x:Name="BackgroundGradientSelectedDisabled" Fill="{StaticResource grayGradient}" Stroke="#7F8E8F8F" RadiusX="2" RadiusY="2" Opacity="0"/>
+                                <Rectangle x:Name="BackgroundGradientSelected" Fill="{StaticResource BtnOverFill}" Stroke="{StaticResource selectedStroke}" RadiusX="2" RadiusY="2" Opacity="0"/>
+                                <Rectangle x:Name="BackgroundHighlight" Margin="1" Stroke="#A0FFFFFF" RadiusX="1" RadiusY="1"/>
+                                <GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />
+                            </Grid>
+
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                            </Trigger>
+                            <Trigger Property="IsSelected" Value="true">
+
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard x:Name="SelectedOff_BeginStoryboard" Storyboard="{StaticResource SelectedOff}"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard x:Name="SelectedOn_BeginStoryboard" Storyboard="{StaticResource SelectedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}" />
+                                <Setter Property="Visibility" TargetName="BackgroundGradientSelected" Value="Hidden"/>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="IsSelected" Value="true" />
+                                    <Condition Property="Selector.IsSelectionActive" Value="false" />
+                                </MultiTrigger.Conditions>
+
+                            </MultiTrigger>
+
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+
+        <Style x:Key="GridViewColumnHeaderGripper" TargetType="{x:Type Thumb}">
+            <Setter Property="Canvas.Right" Value="-8.5" />
+            <Setter Property="Width" Value="18" />
+            <Setter Property="Height" Value="{Binding Path=ActualHeight, RelativeSource={RelativeSource TemplatedParent}}" />
+            <Setter Property="Padding" Value="0,3,0,4" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Thumb}">
+                        <Border Padding="{TemplateBinding Padding}" Background="#00FFFFFF">
+                            <Rectangle HorizontalAlignment="Center" Width="0.5">
+                                <Rectangle.Fill>
+                                    <SolidColorBrush Color="{DynamicResource WhiteColor}" />
+                                </Rectangle.Fill>
+                            </Rectangle>
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="{x:Type GridViewColumnHeader}" TargetType="{x:Type GridViewColumnHeader}">
+            <Setter Property="HorizontalContentAlignment" Value="Center" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="Padding" Value="2,0,2,0" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0.84"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                        </ControlTemplate.Resources>
+                        <Grid Margin="0,1,0,1">
+                            <Grid>
+                                <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F"/>
+                                <Border x:Name="BackgroundNorm_highlight" Margin="1" BorderBrush="#F2FFFFFF" BorderThickness="1,0,1,1" Opacity="0.65"/>
+                                <Border x:Name="BackgroundOver" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TextBoxPressBrush}" BorderThickness="1" Opacity="0"/>
+                                <Border x:Name="BackgroundOver_Highlight" Margin="1" Background="{StaticResource btnOverFillHighlight}" BorderBrush="{StaticResource hoverStroke}" BorderThickness="1,0,1,1" Opacity="0"/>
+                                <Border x:Name="BackgroundPressed" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressBorder}" BorderThickness="1" Opacity="0"/>
+                                <Border x:Name="BackgoundPressed_Highlight" Background="{StaticResource btnPressFillHighlight}" Margin="1" Opacity="0"/>
+                                <Border x:Name="Background_overlay" Margin="1,1,1,0" BorderThickness="1">
+                                    <Border.Background>
+                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                            <GradientStop Color="#00FFFFFF" Offset="0"/>
+                                            <GradientStop Color="#72FFFFFF" Offset="0.157"/>
+                                            <GradientStop Color="#72FFFFFF" Offset="0.5"/>
+                                            <GradientStop Color="#00FFFFFF" Offset="0.51"/>
+                                        </LinearGradientBrush>
+                                    </Border.Background>
+                                </Border>
+
+                                <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" Margin="2,2,2,2" />
+                                <Border x:Name="DisabledVisualElement" Background="#FFF1F1F1" BorderBrush="#FFB2B2B2" BorderThickness="1" CornerRadius="3" IsHitTestVisible="false" Opacity="0"/>
+                            </Grid>
+                            <Canvas>
+                                <Thumb x:Name="PART_HeaderGripper" Style="{StaticResource GridViewColumnHeaderGripper}" HorizontalAlignment="Stretch" />
+                            </Canvas>
+                        </Grid>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+                                <Setter TargetName="PART_HeaderGripper" Property="Background" Value="Transparent" />
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" x:Name="PressedOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}" x:Name="PressedOn_BeginStoryboard"/>
+                                </Trigger.EnterActions>
+                                <Setter TargetName="PART_HeaderGripper" Property="Visibility" Value="Hidden" />
+                                <Setter Property="Background" Value="SkyBlue" />
+                            </Trigger>
+                            <Trigger Property="Height" Value="Auto">
+                                <Setter Property="MinHeight" Value="20" />
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
+                                <Setter Property="Opacity" TargetName="DisabledVisualElement" Value="0.4"/>
+                            </Trigger>
+                            <Trigger Property="Role" Value="Padding">
+                                <Setter TargetName="PART_HeaderGripper" Property="Visibility" Value="Collapsed" />
+                            </Trigger>
+                            <Trigger Property="Role" Value="Floating">
+                                <Setter TargetName="PART_HeaderGripper" Property="Visibility" Value="Collapsed" />
+                                <Setter Property="Background" Value="Yellow" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="{x:Type ToggleButton}">
+            <Setter Property="FocusVisualStyle" Value="{StaticResource NuclearButtonFocusVisual}" />
+            <Setter Property="BorderThickness" Value="1" />
+            <Setter Property="Foreground" Value="{DynamicResource OutsideFontColor}" />
+            <Setter Property="HorizontalContentAlignment" Value="Center" />
+            <Setter Property="VerticalContentAlignment" Value="Center" />
+            <Setter Property="Padding" Value="1" />
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type ToggleButton}">
+                        <ControlTemplate.Resources>
+                            <Storyboard x:Key="HoverOn">
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0.65"/>
+
+                            </Storyboard>
+                            <Storyboard x:Key="HoverOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundOver_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOn">
+                                <Storyboard>
+                                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgroundChecked" Storyboard.TargetProperty="Opacity" To="1"/>
+                                    <DoubleAnimation Duration="00:00:00.1000000" Storyboard.TargetName="BackgoundChecked_Highlight" Storyboard.TargetProperty="Opacity" To="1"/>
+                                </Storyboard>
+                            </Storyboard>
+                            <Storyboard x:Key="CheckedOff">
+                                <Storyboard>
+                                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundChecked" Storyboard.TargetProperty="Opacity" To="0"/>
+                                    <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgoundChecked_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                                </Storyboard>
+                            </Storyboard>
+
+                            <Storyboard x:Key="PressedOn">
+                                <DoubleAnimation Duration="0" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="1"/>
+                                <DoubleAnimation Duration="0" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="1"/>
+                            </Storyboard>
+                            <Storyboard x:Key="PressedOff">
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgroundPressed" Storyboard.TargetProperty="Opacity" To="0"/>
+                                <DoubleAnimation Duration="00:00:00.4000000" Storyboard.TargetName="BackgoundPressed_Highlight" Storyboard.TargetProperty="Opacity" To="0"/>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOn">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+                            <Storyboard x:Key="FocusedOff">
+                                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)">
+                                    <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
+                                </DoubleAnimationUsingKeyFrames>
+                            </Storyboard>
+
+                        </ControlTemplate.Resources>
+                        <Grid x:Name="grid1" >
+                            <Border x:Name="BackgroundNorm" Background="{StaticResource grayGradient}" BorderThickness="1" BorderBrush="#FF8E8F8F" CornerRadius="3"/>
+                            <Border x:Name="BackgroundNorm_highlight" Margin="1" BorderBrush="#F2FFFFFF" BorderThickness="1,0,1,1" CornerRadius="3" Opacity="0.65"/>
+                            <Border x:Name="BackgroundChecked" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressBorder}" BorderThickness="1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgoundChecked_Highlight" Background="{StaticResource btnPressFillHighlight}" Margin="1" CornerRadius="2.5" Opacity="0"/>
+                            <Border x:Name="BackgroundOver" Background="{StaticResource BtnOverFill}" BorderBrush="{StaticResource TextBoxPressBrush}" BorderThickness="1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgroundOver_Highlight" Margin="1" Background="{StaticResource btnOverFillHighlight}" BorderBrush="{StaticResource hoverStroke}" BorderThickness="1,0,1,1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgroundPressed" Background="{StaticResource BtnPressFill}" BorderBrush="{StaticResource btnPressBorder}" BorderThickness="1" CornerRadius="3" Opacity="0"/>
+                            <Border x:Name="BackgoundPressed_Highlight" Background="{StaticResource btnPressFillHighlight}" Margin="1" CornerRadius="2.5" Opacity="0"/>
+                            <Border x:Name="Background_overlay" Margin="1,0,1,0" BorderThickness="1" CornerRadius="3,3,0,0">
+                                <Border.Background>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#00FFFFFF" Offset="0"/>
+                                        <GradientStop Color="#72FFFFFF" Offset="0.157"/>
+                                        <GradientStop Color="#72FFFFFF" Offset="0.5"/>
+                                        <GradientStop Color="#00FFFFFF" Offset="0.51"/>
+                                    </LinearGradientBrush>
+                                </Border.Background>
+                            </Border>
+                            <Border x:Name="DisabledVisualElement" Background="#FFF1F1F1" BorderBrush="#FFB2B2B2" BorderThickness="1" CornerRadius="3" IsHitTestVisible="false" Visibility="Collapsed"/>
+                            <ContentPresenter
+                                                               x:Name="contentPresenter"
+                                                               Content="{TemplateBinding Content}"
+                                                               ContentTemplate="{TemplateBinding ContentTemplate}"
+                                                               VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
+                                                               HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                                                               Margin="{TemplateBinding Padding}"/>
+                            <TextBlock Panel.ZIndex="1"
+                               x:Name="DisabledOverlay"
+                               Text="{TemplateBinding Content}"
+                               Foreground="#FF8E96A2"
+                               HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+                               VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
+                                                               Margin="{TemplateBinding Padding}"
+                               Visibility="Collapsed"/>
+                            <Border x:Name="FocusVisualElement" Margin="1" BorderBrush="{StaticResource btnFocus}" BorderThickness="1" CornerRadius="2" IsHitTestVisible="false" Visibility="Collapsed"/>
+                        </Grid>
+
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsPressed" Value="True">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource PressedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsKeyboardFocused" Value="true"/>
+                            <Trigger Property="IsChecked" Value="true">
+                                <Trigger.ExitActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOff}" />
+                                </Trigger.ExitActions>
+                                <Trigger.EnterActions>
+                                    <BeginStoryboard Storyboard="{StaticResource CheckedOn}"/>
+                                </Trigger.EnterActions>
+
+                            </Trigger>
+                            <Trigger Property="IsEnabled" Value="false">
+                                <Setter Property="Foreground" Value="#ADADAD" />
+                                <Setter Property="Visibility" TargetName="DisabledVisualElement" Value="Visible"/>
+                                <Setter Property="Visibility" TargetName="DisabledOverlay" Value="Visible"/>
+                                <Setter Property="Visibility" TargetName="contentPresenter" Value="Collapsed"/>
+                                <Setter Property="Opacity" TargetName="DisabledVisualElement" Value="1"/>
+
+
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+        <Style TargetType="ToolTip">
+            <Setter Property="Foreground" Value="#FF525552"/>
+            <Setter Property="Padding" Value="3,0,3,0"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="ToolTip">
+                        <Border x:Name="Root">
+                            <Border BorderBrush="#FF737573" BorderThickness="1" CornerRadius="2" Padding="4">
+                                <Border.Resources>
+                                    <Storyboard x:Key="Visible State"/>
+                                    <Storyboard x:Key="Normal State"/>
+                                </Border.Resources>
+                                <Border.Background>
+                                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                        <GradientStop Color="#FFFFFFFF" Offset="0"/>
+                                        <GradientStop Color="#FFE7E7F7" Offset="1"/>
+                                    </LinearGradientBrush>
+                                </Border.Background>
+                                <ContentPresenter
+                                       Content="{TemplateBinding Content}"
+                                       ContentTemplate="{TemplateBinding ContentTemplate}"
+                                       Cursor="{TemplateBinding Cursor}"
+                                       Margin="{TemplateBinding Padding}" />
+                            </Border>
+                        </Border>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+
+    </ResourceDictionary>
diff --git a/trunk/Pithos.Client.WPF/app.config b/trunk/Pithos.Client.WPF/app.config
new file mode 100644 (file)
index 0000000..f5ef9f5
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <configSections>
+    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+      <section name="Pithos.Client.WPF.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+    </sectionGroup>
+  </configSections>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="NHibernate.ByteCode.Castle" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-3.1.0.4000" newVersion="3.1.0.4000" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Caliburn.Micro" publicKeyToken="8e5891231f2ed21f" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+  <userSettings>
+    <Pithos.Client.WPF.Properties.Settings>
+      <setting name="PithosPath" serializeAs="String">
+        <value>e:\Pithos</value>
+      </setting>
+      <setting name="IconPath" serializeAs="String">
+        <value>C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle</value>
+      </setting>
+      <setting name="ProxyServer" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="ProxyPort" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="ProxyType" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="ProxyUsername" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="ProxyPassword" serializeAs="String">
+        <value />
+      </setting>
+      <setting name="ProxyAuthentication" serializeAs="String">
+        <value>False</value>
+      </setting>
+      <setting name="ExtensionsActivated" serializeAs="String">
+        <value>True</value>
+      </setting>
+      <setting name="UserName" serializeAs="String">
+        <value>pkanavos</value>
+      </setting>
+      <setting name="ApiKey" serializeAs="String">
+        <value>9d3cb7b231e96f72ebe96af1c6cd5112</value>
+      </setting>
+      <setting name="ShowDesktopNotifications" serializeAs="String">
+        <value>True</value>
+      </setting>
+      <setting name="StartOnSystemStartup" serializeAs="String">
+        <value>True</value>
+      </setting>
+    </Pithos.Client.WPF.Properties.Settings>
+  </userSettings>
+  <connectionStrings>
+    <add name="Sqlite_InMemory" providerName="System.Data.SQLite" connectionString="Data Source=:memory:;Version=3;New=True" />
+  </connectionStrings>
+  <system.data>
+    <DbProviderFactories>
+      <remove invariant="System.Data.SQLite" />
+      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
+    </DbProviderFactories>
+  </system.data>
+  <startup useLegacyV2RuntimeActivationPolicy="true">
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
+  </startup>
+</configuration>
\ No newline at end of file
diff --git a/trunk/Pithos.Client.WPF/packages.config b/trunk/Pithos.Client.WPF/packages.config
new file mode 100644 (file)
index 0000000..5171971
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Caliburn.Micro" version="1.2.0" />
+  <package id="Caliburn.Micro.Logging" version="1.2" />
+  <package id="System.Data.SQLite" version="1.0.66.1" />
+</packages>
\ No newline at end of file
index 30e5d5c..8fab844 100644 (file)
@@ -30,6 +30,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pithos.Core.Test", "Pithos.
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Newtonsoft.Json", "Libraries\Json40r2\Source\Src\Newtonsoft.Json\Newtonsoft.Json.csproj", "{A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pithos.Client.WPF", "Pithos.Client.WPF\Pithos.Client.WPF.csproj", "{4D9406A3-50ED-4672-BB97-A0B3EA4946FE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotifyIconWpf", "NotifyIconWpf\NotifyIconWpf.csproj", "{7AC63864-7638-41C4-969C-D3197EF2BED9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Caliburn.Micro.WPF", "..\..\..\Downloads\caliburnmicro\caliburnmicro_1f6100f2f0af\src\Caliburn.Micro.WPF\Caliburn.Micro.WPF.csproj", "{B633FE8C-B40E-4122-A763-F94C8B1A70F8}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -206,6 +212,51 @@ Global
                {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Test|Mixed Platforms.ActiveCfg = Test|Any CPU
                {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Test|Mixed Platforms.Build.0 = Test|Any CPU
                {A9AE40FF-1A21-414A-9FE7-3BE13644CC6D}.Test|x86.ActiveCfg = Test|Any CPU
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Debug|Any CPU.ActiveCfg = Debug|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Debug|Mixed Platforms.Build.0 = Debug|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Debug|x86.ActiveCfg = Debug|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Debug|x86.Build.0 = Debug|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Release|Any CPU.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Release|Mixed Platforms.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Release|Mixed Platforms.Build.0 = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Release|x86.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Release|x86.Build.0 = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Test|Any CPU.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Test|Mixed Platforms.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Test|Mixed Platforms.Build.0 = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Test|x86.ActiveCfg = Release|x86
+               {4D9406A3-50ED-4672-BB97-A0B3EA4946FE}.Test|x86.Build.0 = Release|x86
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Release|Any CPU.Build.0 = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Release|x86.ActiveCfg = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Test|Any CPU.ActiveCfg = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Test|Any CPU.Build.0 = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Test|Mixed Platforms.ActiveCfg = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Test|Mixed Platforms.Build.0 = Release|Any CPU
+               {7AC63864-7638-41C4-969C-D3197EF2BED9}.Test|x86.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Release|Any CPU.Build.0 = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Release|x86.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Test|Any CPU.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Test|Any CPU.Build.0 = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Test|Mixed Platforms.ActiveCfg = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Test|Mixed Platforms.Build.0 = Release|Any CPU
+               {B633FE8C-B40E-4122-A763-F94C8B1A70F8}.Test|x86.ActiveCfg = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/Caliburn.Micro.1.2.0.nupkg b/trunk/packages/Caliburn.Micro.1.2.0/Caliburn.Micro.1.2.0.nupkg
new file mode 100644 (file)
index 0000000..0201643
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/Caliburn.Micro.1.2.0.nupkg differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.dll
new file mode 100644 (file)
index 0000000..d687bce
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/Caliburn.Micro.xml
new file mode 100644 (file)
index 0000000..5783001
--- /dev/null
@@ -0,0 +1,2422 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Caliburn.Micro</name>
+    </assembly>
+    <members>
+        <member name="T:Caliburn.Micro.View">
+            <summary>
+            Hosts attached properties related to view models.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.DefaultContext">
+            <summary>
+            The default view context.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsLoadedProperty">
+            <summary>
+            A dependency property which allows the framework to track whether a certain element has already been loaded in certain scenarios.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsScopeRootProperty">
+            <summary>
+            A dependency property which marks an element as a name scope root.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ApplyConventionsProperty">
+            <summary>
+            A dependency property which allows the override of convention application behavior.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ContextProperty">
+            <summary>
+            A dependency property for assigning a context to a particular portion of the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ModelProperty">
+            <summary>
+            A dependency property for attaching a model to the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsGeneratedProperty">
+            <summary>
+            Used by the framework to indicate that this element was generated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.View.ExecuteOnLoad(System.Windows.FrameworkElement,System.Windows.RoutedEventHandler)">
+            <summary>
+            Executes the handler immediately if the element is loaded, otherwise wires it to the Loaded event.
+            </summary>
+            <param name="element">The element.</param>
+            <param name="handler">The handler.</param>
+            <returns>true if the handler was executed immediately; false otherwise</returns>
+        </member>
+        <member name="F:Caliburn.Micro.View.GetFirstNonGeneratedView">
+            <summary>
+            Used to retrieve the root, non-framework-created view.
+            </summary>
+            <param name="view">The view to search.</param>
+            <returns>The root element that was not created by the framework.</returns>
+            <remarks>In certain instances the services create UI elements.
+            For example, if you ask the window manager to show a UserControl as a dialog, it creates a window to host the UserControl in.
+            The WindowManager marks that element as a framework-created element so that it can determine what it created vs. what was intended by the developer.
+            Calling GetFirstNonGeneratedView allows the framework to discover what the original element was. 
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetApplyConventions(System.Windows.DependencyObject)">
+            <summary>
+            Gets the convention application behavior.
+            </summary>
+            <param name="d">The element the property is attached to.</param>
+            <returns>Whether or not to apply conventions.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetApplyConventions(System.Windows.DependencyObject,System.Nullable{System.Boolean})">
+            <summary>
+            Sets the convention application behavior.
+            </summary>
+            <param name="d">The element to attach the property to.</param>
+            <param name="value">Whether or not to apply conventions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model.
+            </summary>
+            <param name="d">The element to attach the model to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model.
+            </summary>
+            <param name="d">The element the model is attached to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the context.
+            </summary>
+            <param name="d">The element the context is attached to.</param>
+            <returns>The context.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the context.
+            </summary>
+            <param name="d">The element to attach the context to.</param>
+            <param name="value">The context.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Parser">
+            <summary>
+            Parses text into a fully functional set of <see cref="T:System.Windows.Interactivity.TriggerBase"/> instances with <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.Parse(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Parses the specified message text.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="text">The message text.</param>
+            <returns>The triggers parsed from the text.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateTrigger">
+            <summary>
+            The function used to generate a trigger.
+            </summary>
+            <remarks>The parameters passed to the method are the the target of the trigger and string representing the trigger.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.CreateMessage(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/> by parsing out the textual dsl.
+            </summary>
+            <param name="target">The target of the message.</param>
+            <param name="messageText">The textual message dsl.</param>
+            <returns>The created message.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.InterpretMessageText">
+            <summary>
+            Function used to parse a string identified as a message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateParameter">
+            <summary>
+            Function used to parse a string identified as a message parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.BindParameter(System.Windows.FrameworkElement,Caliburn.Micro.Parameter,System.String,System.String,System.Windows.Data.BindingMode)">
+            <summary>
+            Creates a binding on a <see cref="T:Caliburn.Micro.Parameter"/>.
+            </summary>
+            <param name="target">The target to which the message is applied.</param>
+            <param name="parameter">The parameter object.</param>
+            <param name="elementName">The name of the element to bind to.</param>
+            <param name="path">The path of the element to bind to.</param>
+            <param name="bindingMode">The binding mode to use.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Execute">
+            <summary>
+              Enables easy marshalling of code to the UI thread.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.InitializeWithDispatcher">
+            <summary>
+              Initializes the framework using the current dispatcher.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.ResetWithoutDispatcher">
+            <summary>
+              Resets the executor to use a non-dispatcher-based action executor.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.OnUIThread(System.Action)">
+            <summary>
+              Executes the action on the UI thread.
+            </summary>
+            <param name = "action">The action to execute.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Execute.InDesignMode">
+            <summary>
+              Indicates whether or not the framework is in design-time mode.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.INotifyPropertyChangedEx">
+            <summary>
+              Extends <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> such that the change event can be raised by external parties.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INotifyPropertyChangedEx.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.#ctor">
+            <summary>
+              Creates an instance of <see cref="T:Caliburn.Micro.PropertyChangedBase"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange``1(System.Linq.Expressions.Expression{System.Func{``0}})">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <typeparam name = "TProperty">The type of the property.</typeparam>
+            <param name = "property">The property expression.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.RaisePropertyChangedEventImmediately(System.String)">
+            <summary>
+              Raises the property changed event immediately.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="P:Caliburn.Micro.PropertyChangedBase.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IObservableCollection`1">
+            <summary>
+              Represents a collection that is observable.
+            </summary>
+            <typeparam name = "T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="T:Caliburn.Micro.BindableCollection`1">
+            <summary>
+            A base collection class that supports automatic UI thread marshalling.
+            </summary>
+            <typeparam name="T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+            <param name="collection">The collection from which the elements are copied.</param>
+            <exception cref="T:System.ArgumentNullException">
+              The <paramref name="collection"/> parameter cannot be null.
+            </exception>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)">
+            <summary>
+              Inserts the item to the specified position.
+            </summary>
+            <param name = "index">The index to insert at.</param>
+            <param name = "item">The item to be inserted.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.MoveItem(System.Int32,System.Int32)">
+            <summary>
+            Moves the item within the collection.
+            </summary>
+            <param name="oldIndex">The old position of the item.</param>
+            <param name="newIndex">The new position of the item.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.MoveItemBase(System.Int32,System.Int32)">
+            <summary>
+            Exposes the base implementation fo the <see cref="M:Caliburn.Micro.BindableCollection`1.MoveItem(System.Int32,System.Int32)"/> function.
+            </summary>
+            <param name="oldIndex">The old index.</param>
+            <param name="newIndex">The new index.</param>
+            <remarks>Used to avoid compiler warning regarding unverificable code.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)">
+            <summary>
+              Sets the item at the specified position.
+            </summary>
+            <param name = "index">The index to set the item at.</param>
+            <param name = "item">The item to set.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)">
+            <summary>
+              Removes the item at the specified position.
+            </summary>
+            <param name = "index">The position used to identify the item to remove.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItemBase(System.Int32)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItems">
+            <summary>
+              Clears the items contained by the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItemsBase">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.ClearItems"/> function.
+            </summary>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+            <summary>
+              Raises the <see cref = "E:System.Collections.ObjectModel.ObservableCollection`1.CollectionChanged" /> event with the provided arguments.
+            </summary>
+            <param name = "e">Arguments of the event being raised.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
+            <summary>
+              Raises the PropertyChanged event with the provided arguments.
+            </summary>
+            <param name = "e">The event data to report in the event.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="P:Caliburn.Micro.BindableCollection`1.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ILog">
+            <summary>
+            A logger.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Info(System.String,System.Object[])">
+            <summary>
+            Logs the message as info.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Warn(System.String,System.Object[])">
+            <summary>
+            Logs the message as a warning.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Error(System.Exception)">
+            <summary>
+            Logs the exception.
+            </summary>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="T:Caliburn.Micro.LogManager">
+            <summary>
+            Used to manage logging.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.LogManager.GetLog">
+            <summary>
+            Creates an <see cref="T:Caliburn.Micro.ILog"/> for the provided type.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Parameter">
+            <summary>
+            Represents a parameter of an <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parameter.ValueProperty">
+            <summary>
+            A dependency property representing the parameter's value.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parameter.CreateInstanceCore">
+            <summary>
+            When implemented in a derived class, creates a new instance of the <see cref="T:System.Windows.Freezable"/> derived class.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Parameter.MakeAwareOf(Caliburn.Micro.ActionMessage)">
+            <summary>
+            Makes the parameter aware of the <see cref="T:Caliburn.Micro.ActionMessage"/> that it's attached to.
+            </summary>
+            <param name="owner">The action message.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Parameter.Value">
+            <summary>
+            Gets or sets the value of the parameter.
+            </summary>
+            <value>The value.</value>
+        </member>
+        <member name="T:Caliburn.Micro.Screen">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IScreen"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAware">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IViewAware"/> which is capable of caching views by context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IViewAware">
+            <summary>
+            Denotes a class which is aware of its view(s).
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.AttachView(System.Object,System.Object)">
+            <summary>
+            Attaches a view to this instance.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.GetView(System.Object)">
+            <summary>
+            Gets a view previously attached to this instance.
+            </summary>
+            <param name="context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.IViewAware.ViewAttached">
+            <summary>
+            Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.CacheViewsByDefault">
+            <summary>
+            Indicates whether or not implementors of <see cref="T:Caliburn.Micro.IViewAware"/> should cache their views by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.Views">
+            <summary>
+              The view chache for this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor(System.Boolean)">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+            <param name="cacheViews">Indicates whether or not this instance maintains a view cache.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewAttached(System.Object,System.Object)">
+            <summary>
+            Called when a view is attached.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewLoaded(System.Object)">
+            <summary>
+              Called when an attached view's Loaded event fires.
+            </summary>
+            <param name = "view"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.GetView(System.Object)">
+            <summary>
+              Gets a view previously attached to this instance.
+            </summary>
+            <param name = "context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ViewAware.ViewAttached">
+            <summary>
+              Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ViewAware.CacheViews">
+            <summary>
+              Indicates whether or not this instance maintains a view cache.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IScreen">
+            <summary>
+            Denotes an instance which implements <see cref="T:Caliburn.Micro.IHaveDisplayName"/>, <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/> and <see cref="T:Caliburn.Micro.INotifyPropertyChangedEx"/>
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveDisplayName">
+            <summary>
+            Denotes an instance which has a display name.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveDisplayName.DisplayName">
+            <summary>
+            Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IActivate">
+            <summary>
+            Denotes an instance which requires activation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IActivate.Activate">
+            <summary>
+            Activates this instance.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IActivate.IsActive">
+            <summary>
+             Indicates whether or not this instance is active.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IActivate.Activated">
+            <summary>
+            Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IDeactivate">
+            <summary>
+            Denotes an instance which requires deactivation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IDeactivate.Deactivate(System.Boolean)">
+            <summary>
+            Deactivates this instance.
+            </summary>
+            <param name="close">Indicates whether or not this instance is being closed.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.AttemptingDeactivation">
+            <summary>
+            Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.Deactivated">
+            <summary>
+            Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IGuardClose">
+            <summary>
+            Denotes an instance which may prevent closing.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IClose">
+            <summary>
+            Denotes an object that can be closed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IClose.TryClose">
+            <summary>
+            Tries to close this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IGuardClose.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementer calls this action with the result of the close check.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IChild">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IChild.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.#ctor">
+            <summary>
+              Creates an instance of the screen.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnInitialize">
+            <summary>
+              Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnActivate">
+            <summary>
+              Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnDeactivate(System.Boolean)">
+            <summary>
+              Called when deactivating.
+            </summary>
+            <param name = "close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.CanClose(System.Action{System.Boolean})">
+            <summary>
+              Called to check whether or not this instance can close.
+            </summary>
+            <param name = "callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.TryClose">
+            <summary>
+              Tries to close this instance by asking its Parent to initiate shutdown or by asking its corresponding view to close.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.TryClose(System.Nullable{System.Boolean})">
+            <summary>
+            Closes this instance by asking its Parent to initiate shutdown or by asking it's corresponding view to close.
+            This overload also provides an opportunity to pass a dialog result to it's corresponding view.
+            </summary>
+            <param name="dialogResult">The dialog result.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.Parent">
+            <summary>
+              Gets or Sets the Parent <see cref="T:Caliburn.Micro.IConductor"/>
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.DisplayName">
+            <summary>
+              Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsActive">
+            <summary>
+              Indicates whether or not this instance is currently active.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsInitialized">
+            <summary>
+              Indicates whether or not this instance is currently initialized.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Activated">
+            <summary>
+              Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.AttemptingDeactivation">
+            <summary>
+              Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Deactivated">
+            <summary>
+              Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to and activates only one item at a time.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBaseWithActiveItem`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/> that maintain an active item.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBase`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.IConductor">
+            <summary>
+            Denotes an instance which conducts other objects by managing an ActiveItem and maintaining a strict lifecycle.
+            </summary>
+            <remarks>Conducted instances can optin to the lifecycle by impelenting any of the follosing <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/>.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IParent">
+            <summary>
+              Interface used to define an object associated to a collection of children.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IParent.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.ActivateItem(System.Object)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.DeactivateItem(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IConductor.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IParent`1">
+            <summary>
+            Interface used to define a specialized parent.
+            </summary>
+            <typeparam name="T">The type of children.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IParent`1.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.OnActivationProcessed(`0,System.Boolean)">
+            <summary>
+            Called by a subclass when an activation needs processing.
+            </summary>
+            <param name="item">The item on which activation was attempted.</param>
+            <param name="success">if set to <c>true</c> activation was successful.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBase`1.CloseStrategy">
+            <summary>
+            Gets or sets the close strategy.
+            </summary>
+            <value>The close strategy.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ConductorBase`1.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IConductActiveItem">
+            <summary>
+            An <see cref="T:Caliburn.Micro.IConductor"/> that also implements <see cref="T:Caliburn.Micro.IHaveActiveItem"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveActiveItem">
+            <summary>
+            Denotes an instance which maintains an active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveActiveItem.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBaseWithActiveItem`1.ChangeActiveItem(`0,System.Boolean)">
+            <summary>
+            Changes the active item.
+            </summary>
+            <param name="newItem">The new item to activate.</param>
+            <param name="closePrevious">Indicates whether or not to close the previous active item.</param>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.Caliburn#Micro#IHaveActiveItem#ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+            <value></value>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.AllActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to many items wich are all activated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor(System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+            <param name="openPublicItems">if set to <c>true</c> opens public items that are properties of this class.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnInitialize">
+            <summary>
+            Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.AllActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.OneActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items but only activates on at a time.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.OneActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DetermineNextItemToActivate(System.Collections.Generic.IList{`0},System.Int32)">
+            <summary>
+            Determines the next item to activate based on the last active index.
+            </summary>
+            <param name="list">The list of possible active items.</param>
+            <param name="lastIndex">The index of the last active item.</param>
+            <returns>The next item to activate.</returns>
+            <remarks>Called after an active item is closed.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.OneActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelLocator">
+            <summary>
+              A strategy for determining which view model to use for a given view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelLocator.MakeInterface(System.String)">
+            <summary>
+              Makes a type name into an interface name.
+            </summary>
+            <param name = "typeName">The part.</param>
+            <returns></returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateTypeForViewType">
+            <summary>
+              Determines the view model type based on the specified view type.
+            </summary>
+            <returns>The view model type.</returns>
+            <remarks>
+              Pass the view type and receive a view model type. Pass true for the second parameter to search for interfaces.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForViewType">
+            <summary>
+              Locates the view model for the specified view type.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view type as a parameter and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForView">
+            <summary>
+              Locates the view model for the specified view instance.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view instance as a parameters and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IoC">
+            <summary>
+            Used by the framework to pull instances from an IoC container and to inject dependencies into certain existing classes.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetInstance">
+            <summary>
+            Gets an instance by type and key.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetAllInstances">
+            <summary>
+            Gets all instances of a particular type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.BuildUp">
+            <summary>
+            Passes an existing instance to the IoC container to enable dependencies to be injected.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1">
+            <summary>
+            Gets an instance by type.
+            </summary>
+            <typeparam name="T">The type to resolve from the container.</typeparam>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1(System.String)">
+            <summary>
+            Gets an instance from the container using type and key.
+            </summary>
+            <typeparam name="T">The type to resolve.</typeparam>
+            <param name="key">The key to look up.</param>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Action">
+            <summary>
+            A host for action related attached properties.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element will be set to this instance.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetWithoutContextProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element is not set to this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTarget(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTarget(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTargetWithoutContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+            <remarks>The DataContext will not be set.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTargetWithoutContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.HasTargetSet(System.Windows.DependencyObject)">
+            <summary>
+             Checks if the <see cref="T:Caliburn.Micro.ActionMessage"/>-Target was set.
+            </summary>
+            <param name="element">DependencyObject to check</param>
+            <returns>True if Target or TargetWithoutContext was set on <paramref name="element"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.Invoke(System.Object,System.String,System.Windows.DependencyObject,System.Windows.FrameworkElement,System.Object,System.Object[])">
+            <summary>
+             Uses the action pipeline to invoke the method.
+            </summary>
+            <param name="target">The object instance to invoke the method on.</param>
+            <param name="methodName">The name of the method to invoke.</param>
+            <param name="view">The view.</param>
+            <param name="source">The source of the invocation.</param>
+            <param name="eventArgs">The event args.</param>
+            <param name="parameters">The method parameters.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ScreenExtensions">
+            <summary>
+            Hosts extension methods for <see cref="T:Caliburn.Micro.IScreen"/> classes.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryActivate(System.Object)">
+            <summary>
+            Activates the item if it implements <see cref="T:Caliburn.Micro.IActivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialActivatable">The potential activatable.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryDeactivate(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the item if it implements <see cref="T:Caliburn.Micro.IDeactivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialDeactivatable">The potential deactivatable.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem(Caliburn.Micro.IConductor,System.Object)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem``1(Caliburn.Micro.ConductorBase{``0},``0)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ActivateWith(Caliburn.Micro.IActivate,Caliburn.Micro.IActivate)">
+            <summary>
+             Activates a child whenever the specified parent is activated.
+            </summary>
+            <param name="child">The child to activate.</param>
+            <param name="parent">The parent whose activation triggers the child's activation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.DeactivateWith(Caliburn.Micro.IDeactivate,Caliburn.Micro.IDeactivate)">
+            <summary>
+             Deactivates a child whenever the specified parent is deactivated.
+            </summary>
+            <param name="child">The child to deactivate.</param>
+            <param name="parent">The parent whose deactivation triggers the child's deactivation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ConductWith``2(``0,``1)">
+            <summary>
+             Activates and Deactivates a child whenever the specified parent is Activated or Deactivated.
+            </summary>
+            <param name="child">The child to activate/deactivate.</param>
+            <param name="parent">The parent whose activation/deactivation triggers the child's activation/deactivation.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ExtensionMethods">
+            <summary>
+            Generic extension methods used by the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetAttributes``1(System.Reflection.MemberInfo,System.Boolean)">
+            <summary>
+            Gets all the attributes of a particular type.
+            </summary>
+            <typeparam name="T">The type of attributes to get.</typeparam>
+            <param name="member">The member to inspect for attributes.</param>
+            <param name="inherit">Whether or not to search for inherited attributes.</param>
+            <returns>The list of attributes found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.Apply``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
+            <summary>
+            Applies the action to each element in the list.
+            </summary>
+            <typeparam name="T">The enumerable item's type.</typeparam>
+            <param name="enumerable">The elements to enumerate.</param>
+            <param name="action">The action to apply to each item in the list.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetMemberInfo(System.Linq.Expressions.Expression)">
+            <summary>
+            Converts an expression into a <see cref="T:System.Reflection.MemberInfo"/>.
+            </summary>
+            <param name="expression">The expression to convert.</param>
+            <returns>The member info.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ConventionManager">
+            <summary>
+            Used to configure the conventions used by the framework to apply bindings and create actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.BooleanToVisibilityConverter">
+            <summary>
+            Converters <see cref="T:System.Boolean"/> to/from <see cref="T:System.Windows.Visibility"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.IncludeStaticProperties">
+            <summary>
+            Indicates whether or not static properties should be included during convention name matching.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.OverwriteContent">
+            <summary>
+            Indicates whether or not the Content of ContentControls should be overwritten by conventional bindings.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultItemTemplate">
+            <summary>
+            The default DataTemplate used for ItemsControls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultHeaderTemplate">
+            <summary>
+            The default DataTemplate used for Headered controls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.Singularize">
+            <summary>
+            Changes the provided word from a plural form to a singular form.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DerivePotentialSelectionNames">
+            <summary>
+            Derives the SelectedItem property name.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyBindingMode">
+            <summary>
+            Applies the appropriate binding mode to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValidation">
+            <summary>
+            Determines whether or not and what type of validation to enable on the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValueConverter">
+            <summary>
+            Determines whether a value converter is is needed and applies one to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyStringFormat">
+            <summary>
+            Determines whether a custom string format is needed and applies it to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyUpdateSourceTrigger">
+            <summary>
+            Determines whether a custom update source trigger should be applied to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.HasBinding">
+            <summary>
+            Determines whether a particular dependency property already has a binding on the provided element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.SetBinding">
+            <summary>
+            Creates a binding and sets it on the element.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention``1(System.Windows.DependencyProperty,System.String,System.String)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <typeparam name="T">The type of element.</typeparam>
+            <param name="bindableProperty">The default property for binding conventions.</param>
+            <param name="parameterProperty">The default property for action parameters.</param>
+            <param name="eventName">The default event to trigger actions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention(Caliburn.Micro.ElementConvention)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <param name="convention"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetElementConvention(System.Type)">
+            <summary>
+            Gets an element convention for the provided element type.
+            </summary>
+            <param name="elementType">The type of element to locate the convention for.</param>
+            <returns>The convention if found, null otherwise.</returns>
+            <remarks>Searches the class hierarchy for conventions.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyItemTemplate(System.Windows.Controls.ItemsControl,System.Reflection.PropertyInfo)">
+            <summary>
+            Attempts to apply the default item template to the items control.
+            </summary>
+            <param name="itemsControl">The items control.</param>
+            <param name="property">The collection property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ConfigureSelectedItem(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type,System.String)">
+            <summary>
+            Configures the selected item convention.
+            </summary>
+            <param name="selector">The element that has a SelectedItem property.</param>
+            <param name="selectedItemProperty">The SelectedItem property.</param>
+            <param name="viewModelType">The view model type.</param>
+            <param name="path">The property path.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyHeaderTemplate(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type)">
+            <summary>
+            Applies a header template based on <see cref="T:Caliburn.Micro.IHaveDisplayName"/>
+            </summary>
+            <param name="element"></param>
+            <param name="headerTemplateProperty"></param>
+            <param name="viewModelType"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetPropertyCaseInsensitive(System.Type,System.String)">
+            <summary>
+            Gets a property by name, ignoring case and searching all interfaces.
+            </summary>
+            <param name="type">The type to inspect.</param>
+            <param name="propertyName">The property to search for.</param>
+            <returns>The property or null if not found.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.AssemblySource">
+            <summary>
+            A source of assemblies that are inspectable by the framework.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.AssemblySource.Instance">
+            <summary>
+            The singleton instance of the AssemblySource used by the framework.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Message">
+            <summary>
+            Host's attached properties related to routed UI messaging.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetHandler(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Places a message handler on this element.
+            </summary>
+            <param name="d">The element.</param>
+            <param name="value">The message handler.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetHandler(System.Windows.DependencyObject)">
+            <summary>
+            Gets the message handler for this element.
+            </summary>
+            <param name="d">The element.</param>
+            <returns>The message handler.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Message.AttachProperty">
+            <summary>
+            A property definition representing attached triggers and messages.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetAttach(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Sets the attached triggers and messages.
+            </summary>
+            <param name="d">The element to attach to.</param>
+            <param name="attachText">The parsable attachment text.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetAttach(System.Windows.DependencyObject)">
+            <summary>
+            Gets the attached triggers and messages.
+            </summary>
+            <param name="d">The element that was attached to.</param>
+            <returns>The parsable attachment text.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveParameters">
+            <summary>
+            Indicates that a message is parameterized.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveParameters.Parameters">
+            <summary>
+            Represents the parameters of a message.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ElementConvention">
+            <summary>
+            Represents the conventions for a particular element type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ElementType">
+            <summary>
+            The type of element to which the conventions apply.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.GetBindableProperty">
+            <summary>
+            Gets the default property to be used in binding conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.CreateTrigger">
+            <summary>
+            The default trigger to be used when wiring actions on this element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ParameterProperty">
+            <summary>
+            The default property to be used for parameters of this type in actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ApplyBinding">
+            <summary>
+            Applies custom conventions for elements of this type.
+            </summary>
+            <remarks>Pass the view model type, property path, property instance, framework element and its convention.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.Coroutine">
+            <summary>
+            Manages coroutine execution.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Coroutine.CreateParentEnumerator">
+            <summary>
+            Creates the parent enumerator.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Coroutine.BeginExecute(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult},Caliburn.Micro.ActionExecutionContext,System.EventHandler{Caliburn.Micro.ResultCompletionEventArgs})">
+            <summary>
+            Executes a coroutine.
+            </summary>
+            <param name="coroutine">The coroutine to execute.</param>
+            <param name="context">The context to execute the coroutine within.</param>
+            /// <param name="callback">The completion callback for the coroutine.</param>
+        </member>
+        <member name="E:Caliburn.Micro.Coroutine.Completed">
+            <summary>
+            Called upon completion of a coroutine.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewLocator">
+            <summary>
+              A strategy for determining which view to use for a given model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.ContextSeparator">
+            <summary>
+              Separator used when resolving View names for context instances.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.GetOrCreateViewType">
+            <summary>
+              Retrieves the view from the IoC container or tries to create it if not found.
+            </summary>
+            <remarks>
+              Pass the type of view as a parameter and recieve an instance of the view.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateTypeForModelType">
+            <summary>
+              Locates the view type based on the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view type.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModelType">
+            <summary>
+              Locates the view for the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModel">
+            <summary>
+              Locates the view for the specified model instance.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model instance, display location (or null) and the context (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ViewLocator.InitializeComponent(System.Object)">
+            <summary>
+              When a view does not contain a code-behind file, we need to automatically call InitializeCompoent.
+            </summary>
+            <param name = "element">The element to initialize</param>
+        </member>
+        <member name="T:Caliburn.Micro.MessageBinder">
+            <summary>
+            A service that is capable of properly binding values to a method's parameters and creating instances of <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.SpecialValues">
+            <summary>
+            The special parameter values recognized by the message binder along with their resolvers.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.CustomConverters">
+            <summary>
+            Custom converters used by the framework registered by detination type for which the will be selected.
+            The converter is passed the existing value to convert and a "context" object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.DetermineParameters(Caliburn.Micro.ActionExecutionContext,System.Reflection.ParameterInfo[])">
+            <summary>
+            Determines the parameters that a method should be invoked with.
+            </summary>
+            <param name="context">The action execution context.</param>
+            <param name="requiredParameters">The parameters required to complete the invocation.</param>
+            <returns>The actual parameter values.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.EvaluateParameter">
+            <summary>
+            Transforms the textual parameter into the actual parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.CoerceValue(System.Type,System.Object,System.Object)">
+            <summary>
+            Coerces the provided value to the destination type.
+            </summary>
+            <param name="destinationType">The destination type.</param>
+            <param name="providedValue">The provided value.</param>
+            <param name="context">An optional context value which can be used during conversion.</param>
+            <returns>The coerced value.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.GetDefaultValue(System.Type)">
+            <summary>
+            Gets the default value for a type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>The default value.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ICloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.ICloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.DefaultCloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the class.
+            </summary>
+            <param name="closeConductedItemsWhenConductorCannotClose">Indicates that even if all conducted items are not closable, those that are should be closed. The default is FALSE.</param>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle">
+            <summary>
+              A marker interface for classes that subscribe to messages.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle`1">
+            <summary>
+              Denotes a class which can handle a particular type of message.
+            </summary>
+            <typeparam name = "TMessage">The type of message to handle.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IHandle`1.Handle(`0)">
+            <summary>
+              Handles the message.
+            </summary>
+            <param name = "message">The message.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IEventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Uses the default thread marshaller during publication.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.IEventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.EventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.EventAggregator.DefaultPublicationThreadMarshaller">
+            <summary>
+              The default thread marshaller used for publication;
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.EventAggregator"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Does not marshall the the publication to any special thread by default.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.EventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAttachedEventArgs">
+            <summary>
+            The event args for the <see cref="E:Caliburn.Micro.IViewAware.ViewAttached"/> event.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.View">
+            <summary>
+            The view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.Context">
+            <summary>
+            The context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IChild`1">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+            <typeparam name="TParent">The type of parent.</typeparam>
+        </member>
+        <member name="P:Caliburn.Micro.IChild`1.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionMessage">
+            <summary>
+            Used to send a message from the UI to a presentation model class, indicating that a particular Action should be invoked.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.EnforceGuardsDuringInvocation">
+            <summary>
+             Causes the action invocation to "double check" if the action should be invoked by executing the guard immediately before hand.
+            </summary>
+             <remarks>This is disabled by default. If multiple actions are attached to the same element, you may want to enable this so that each individaul action checks its guard regardless of how the UI state appears.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ThrowsExceptions">
+            <summary>
+             Causes the action to throw if it cannot locate the target or the method at invocation time.
+            </summary>
+             <remarks>True by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.MethodNameProperty">
+            <summary>
+            Represents the method name of an action message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ParametersProperty">
+            <summary>
+            Represents the parameters of an action message.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="eventArgs">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.UpdateAvailability">
+            <summary>
+            Forces an update of the UI's Enabled/Disabled state based on the the preconditions associated with the method.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.InvokeAction">
+            <summary>
+            Invokes the action using the specified <see cref="T:Caliburn.Micro.ActionExecutionContext"/>
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ApplyAvailabilityEffect">
+            <summary>
+            Applies an availability effect, such as IsEnabled, to an element.
+            </summary>
+            <remarks>Returns a value indicating whether or not the action is available.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.GetTargetMethod">
+            <summary>
+            Finds the method on the target matching the specified message.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="message">The message.</param>
+            <returns>The matching method, if available.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.SetMethodBinding">
+            <summary>
+            Sets the target, method and view on the context. Uses a bubbling strategy by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.PrepareContext">
+            <summary>
+            Prepares the action execution context for use.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.TryFindGuardMethod(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Try to find a candidate for guard function, having:
+               - a name in the form "CanXXX"
+               - no generic parameters
+               - a bool return type
+               - no parameters or a set of parameters corresponding to the action method
+            </summary>
+            <param name="context">The execution context</param>
+            <returns>A MethodInfo, if found; null otherwise</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.MethodName">
+            <summary>
+            Gets or sets the name of the method to be invoked on the presentation model class.
+            </summary>
+            <value>The name of the method.</value>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.Parameters">
+            <summary>
+            Gets the parameters to pass as part of the method invocation.
+            </summary>
+            <value>The parameters.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ActionMessage.Detaching">
+            <summary>
+            Occurs before the message detaches from the associated object.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer">
+            <summary>
+             Class for managing the list of rules for doing name transformation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.String,System.String)">
+            <summary>
+             Adds a transform using a single replacement value and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValue">The replacement value.</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.Collections.Generic.IEnumerable{System.String},System.String)">
+            <summary>
+             Adds a transform using a list of replacement values and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValueList">The list of replacement values</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String)">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String,System.Func{System.String,System.String})">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <param name = "getReplaceString">A function to do a transform on each item in the ReplaceValueList prior to applying the regular expression transform</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer.Rule">
+            <summary>
+             A rule that describes a name transform.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.GlobalFilterPattern">
+            <summary>
+            Regular expression pattern for global filtering
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacePattern">
+            <summary>
+            Regular expression pattern for replacing text
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacementValues">
+            <summary>
+            The list of replacement values
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationEventArgs">
+            <summary>
+            EventArgs sent during activation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationEventArgs.WasInitialized">
+            <summary>
+            Indicates whether the sender was initialized in addition to being activated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationProcessedEventArgs">
+            <summary>
+            Contains details about the success or failure of an item's activation through an <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Item">
+            <summary>
+            The item whose activation was processed.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Success">
+            <summary>
+            Gets or sets a value indicating whether the activation was a success.
+            </summary>
+            <value><c>true</c> if success; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.DeactivationEventArgs">
+            <summary>
+            EventArgs sent during deactivation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.DeactivationEventArgs.WasClosed">
+            <summary>
+            Indicates whether the sender was closed in addition to being deactivated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionExecutionContext">
+            <summary>
+            The context used during the execution of an Action or its guard.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.CanExecute">
+            <summary>
+            Determines whether the action can execute.
+            </summary>
+            <remarks>Returns true if the action can execute, false otherwise.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.EventArgs">
+            <summary>
+            Any event arguments associated with the action's invocation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.Method">
+            <summary>
+            The actual method info to be invoked.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionExecutionContext.Dispose">
+            <summary>
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Message">
+            <summary>
+            The message being executed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Source">
+            <summary>
+            The source from which the message originates.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Target">
+            <summary>
+            The instance on which the action is invoked.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.View">
+            <summary>
+            The view associated with the target.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Item(System.String)">
+            <summary>
+            Gets or sets additional data needed to invoke the action.
+            </summary>
+            <param name="key">The data key.</param>
+            <returns>Custom data associated with the context.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ActionExecutionContext.Disposing">
+            <summary>
+            Called when the execution context is disposed
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ResultCompletionEventArgs">
+            <summary>
+            The event args for the Completed event of an <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.Error">
+            <summary>
+            Gets or sets the error if one occurred.
+            </summary>
+            <value>The error.</value>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.WasCancelled">
+            <summary>
+            Gets or sets a value indicating whether the result was cancelled.
+            </summary>
+            <value><c>true</c> if cancelled; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.BindingScope">
+            <summary>
+            Provides methods for searching a given scope for named elements.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindingScope.FindName(System.Collections.Generic.IEnumerable{System.Windows.FrameworkElement},System.String)">
+            <summary>
+            Searches through the list of named elements looking for a case-insensitive match.
+            </summary>
+            <param name="elementsToSearch">The named elements to search through.</param>
+            <param name="name">The name to search for.</param>
+            <returns>The named element or null if not found.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.BindingScope.GetNamedElements">
+            <summary>
+            Gets all the <see cref="T:System.Windows.FrameworkElement"/> instances with names in the scope.
+            </summary>
+            <returns>Named <see cref="T:System.Windows.FrameworkElement"/> instances in the provided scope.</returns>
+            <remarks>Pass in a <see cref="T:System.Windows.DependencyObject"/> and receive a list of named <see cref="T:System.Windows.FrameworkElement"/> instances in the same scope.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IWindowManager">
+            <summary>
+            A service that manages windows.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+            Shows a modal dialog for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+            <returns>The dialog result.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowWindow(System.Object,System.Object)">
+            <summary>
+            Shows a non-modal window for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Shows a popup at the current mouse position.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The view context.</param>
+            <param name="settings">The optional popup settings.</param>
+        </member>
+        <member name="T:Caliburn.Micro.WindowManager">
+            <summary>
+            A service that manages windows.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+            Shows a modal dialog for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+            <returns>The dialog result.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowWindow(System.Object,System.Object)">
+            <summary>
+            Shows a window for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Shows a popup at the current mouse position.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The view context.</param>
+            <param name="settings">The optional popup settings.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.CreatePopup(System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Creates a popup for hosting a popup window.
+            </summary>
+            <param name="rootModel">The model.</param>
+            <param name="settings">The optional popup settings.</param>
+            <returns>The popup.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.CreateWindow(System.Object,System.Boolean,System.Object)">
+            <summary>
+            Creates a window.
+            </summary>
+            <param name="rootModel">The view model.</param>
+            <param name="isDialog">Whethor or not the window is being shown as a dialog.</param>
+            <param name="context">The view context.</param>
+            <returns>The window.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.EnsureWindow(System.Object,System.Object,System.Boolean)">
+            <summary>
+            Makes sure the view is a window is is wrapped by one.
+            </summary>
+            <param name="model">The view model.</param>
+            <param name="view">The view.</param>
+            <param name="isDialog">Whethor or not the window is being shown as a dialog.</param>
+            <returns>The window.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.InferOwnerOf(System.Windows.Window)">
+            <summary>
+            Infers the owner of the window.
+            </summary>
+            <param name="window">The window to whose owner needs to be determined.</param>
+            <returns>The owner.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.CreatePage(System.Object,System.Object)">
+            <summary>
+            Creates the page.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.EnsurePage(System.Object,System.Object)">
+            <summary>
+            Ensures the view is a page or provides one.
+            </summary>
+            <param name="model">The model.</param>
+            <param name="view">The view.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Caliburn.Micro.SequentialResult">
+            <summary>
+              An implementation of <see cref="T:Caliburn.Micro.IResult"/> that enables sequential execution of multiple results.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IResult">
+            <summary>
+            Allows custom code to execute after the return of a action.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Executes the result using the specified context.
+            </summary>
+            <param name="context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IResult.Completed">
+            <summary>
+            Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.#ctor(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.SequentialResult"/> class.
+            </summary>
+            <param name="enumerator">The enumerator.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+              Executes the result using the specified context.
+            </summary>
+            <param name = "context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.SequentialResult.Completed">
+            <summary>
+              Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bootstrapper">
+            <summary>
+            Instantiate this class in order to configure the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the bootstrapper.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartDesignTime">
+            <summary>
+            Called by the bootstrapper's constructor at design time to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartRuntime">
+            <summary>
+            Called by the bootstrapper's constructor at runtime to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.Configure">
+            <summary>
+            Override to configure the framework and setup your IoC container.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.PrepareApplication">
+            <summary>
+            Provides an opportunity to hook into the application object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.SelectAssemblies">
+            <summary>
+            Override to tell the framework where to find assemblies to inspect for views, etc.
+            </summary>
+            <returns>A list of assemblies to inspect.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetInstance(System.Type,System.String)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="service">The service to locate.</param>
+            <param name="key">The key to locate.</param>
+            <returns>The located service.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetAllInstances(System.Type)">
+            <summary>
+            Override this to provide an IoC specific implementation
+            </summary>
+            <param name="service">The service to locate.</param>
+            <returns>The located services.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.BuildUp(System.Object)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="instance">The instance to perform injection on.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnStartup(System.Object,System.Windows.StartupEventArgs)">
+            <summary>
+            Override this to add custom behavior to execute after the application starts.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnExit(System.Object,System.EventArgs)">
+            <summary>
+            Override this to add custom behavior on exit.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnUnhandledException(System.Object,System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)">
+            <summary>
+            Override this to add custom behavior for unhandled exceptions.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.DisplayRootViewFor(System.Type)">
+            <summary>
+            Locates the view model, locates the associate view, binds them and shows it as the root view.
+            </summary>
+            <param name="viewModelType">The view model type.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Bootstrapper.Application">
+            <summary>
+            The application.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bootstrapper`1">
+            <summary>
+            A strongly-typed version of <see cref="T:Caliburn.Micro.Bootstrapper"/> that specifies the type of root model to create for the application.
+            </summary>
+            <typeparam name="TRootModel">The type of root model for the application.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper`1.OnStartup(System.Object,System.Windows.StartupEventArgs)">
+            <summary>
+            Override this to add custom behavior to execute after the application starts.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The args.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Bind">
+            <summary>
+            Hosts dependency properties for binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Bind.ModelProperty">
+            <summary>
+            Allows binding on an existing view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="T:Caliburn.Micro.AttachedCollection`1">
+            <summary>
+            A collection that can exist as part of a behavior.
+            </summary>
+            <typeparam name="T">The type of item in the attached collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.AttachedCollection`1"/>
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attached the collection.
+            </summary>
+            <param name="dependencyObject">The dependency object to attach the collection to.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Detach">
+            <summary>
+            Detaches the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemAdded(`0)">
+            <summary>
+            Called when an item is added from the collection.
+            </summary>
+            <param name="item">The item that was added.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The item that was removed.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelBinder">
+            <summary>
+            Binds a view to a view model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ApplyConventionsByDefault">
+            <summary>
+            Gets or sets a value indicating whether to apply conventions by default.
+            </summary>
+            <value>
+               <c>true</c> if conventions should be applied by default; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ConventionsAppliedProperty">
+            <summary>
+            Indicates whether or not the conventions have already been applied to the view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelBinder.ShouldApplyConventions(System.Windows.FrameworkElement)">
+            <summary>
+            Determines whether a view should have conventions applied to it.
+            </summary>
+            <param name="view">The view to check.</param>
+            <returns>Whether or not conventions should be applied to the view.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindProperties">
+            <summary>
+            Creates data bindings on the view's controls based on the provided properties.
+            </summary>
+            <remarks>Parameters include named Elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindActions">
+            <summary>
+            Attaches instances of <see cref="T:Caliburn.Micro.ActionMessage"/> to the view's controls based on the provided methods.
+            </summary>
+            <remarks>Parameters include the named elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.HandleUnmatchedElements">
+            <summary>
+            Allows the developer to add custom handling of named elements which were not matched by any default conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.Bind">
+             <summary>
+             Binds the specified viewModel to the view.
+             </summary>
+            <remarks>Passes the the view model, view and creation context (or null for default) to use in applying binding.</remarks>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.dll
new file mode 100644 (file)
index 0000000..38aac7b
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/Net40/System.Windows.Interactivity.xml
new file mode 100644 (file)
index 0000000..10cdad6
--- /dev/null
@@ -0,0 +1,1072 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>System.Windows.Interactivity</name>
+    </assembly>
+    <members>
+        <member name="T:System.Windows.Interactivity.AttachableCollection`1">
+            <summary>
+            Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.IAttachedObject">
+            <summary>
+            An interface for an object that can be attached to another object.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.IAttachedObject.AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+            <remarks>Represents the object the instance is attached to.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.AttachableCollection`1"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemAdded(`0)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.VerifyAdd(`0)">
+            <exception cref="T:System.InvalidOperationException">Cannot add the instance to a collection more than once.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The IAttachedObject is already attached to a different object.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.AssociatedObject">
+            <summary>
+            The object on which the collection is hosted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior`1">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <typeparam name="T">The type the <see cref="T:System.Windows.Interactivity.Behavior`1"/> can be attached to.</typeparam>
+            <remarks>
+               Behavior is the base class for providing attachable state and commands to an object.
+               The types the Behavior can be attached to can be controlled by the generic parameter.
+               Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers
+               from the AssociatedObject.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <remarks>This is an infrastructure class. Behavior authors should derive from Behavior&lt;T&gt; instead of from this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnAttached">
+            <summary>
+            Called after the behavior is attached to an AssociatedObject.
+            </summary>
+            <remarks>Override this to hook up functionality to the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnDetaching">
+            <summary>
+            Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+            <remarks>Override this to unhook functionality from the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The Behavior is already hosted on a different element.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the Behavior type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedType">
+            <summary>
+            The type to which this behavior can be attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedObject">
+            <summary>
+            Gets the object to which this behavior is attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.Behavior`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.Behavior`1"/> is attached.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.BehaviorCollection">
+            <summary>
+            Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemAdded(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemRemoved(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.CreateInstanceCore">
+            <summary>
+            Creates a new instance of the BehaviorCollection.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditor">
+            <summary>
+            Enumerates possible values for reusable property value editors.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Element">
+            <summary>
+            Uses the element picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Storyboard">
+            <summary>
+            Uses the storyboard picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.StateName">
+            <summary>
+            Uses the state picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.ElementBinding">
+            <summary>
+            Uses the element-binding picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.PropertyBinding">
+            <summary>
+            Uses the property-binding picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute">
+            <summary>
+            Associates the given editor type with the property on which the CustomPropertyValueEditor is applied.
+            </summary>
+            <remarks>Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name).</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.#ctor(System.Windows.Interactivity.CustomPropertyValueEditor)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute"/> class.
+            </summary>
+            <param name="customPropertyValueEditor">The custom property value editor.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.CustomPropertyValueEditor">
+            <summary>
+            Gets or sets the custom property value editor.
+            </summary>
+            <value>The custom property value editor.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.DefaultTriggerAttribute">
+            <summary>
+            Provides design tools information about what <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate for a given action or command.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">A single argument for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+            <remarks>This constructor is useful if the specifed <see cref="T:System.Windows.Interactivity.TriggerBase"/> has a single argument. The
+            resulting code will be CLS compliant.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">The constructor arguments for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.Instantiate">
+            <summary>
+            Instantiates this instance.
+            </summary>
+            <returns>The <see cref="T:System.Windows.Interactivity.TriggerBase"/> specified by the DefaultTriggerAttribute.</returns>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TargetType">
+            <summary>
+            Gets the type that this DefaultTriggerAttribute applies to.
+            </summary>
+            <value>The type this DefaultTriggerAttribute applies to.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TriggerType">
+            <summary>
+            Gets the type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.
+            </summary>
+            <value>The type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.Parameters">
+            <summary>
+            Gets the parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.
+            </summary>
+            <value>The parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.DependencyObjectHelper.GetSelfAndAncestors(System.Windows.DependencyObject)">
+            <summary>
+            This method will use the VisualTreeHelper.GetParent method to do a depth first walk up 
+            the visual tree and return all ancestors of the specified object, including the object itself.
+            </summary>
+            <param name="dependencyObject">The object in the visual tree to find ancestors of.</param>
+            <returns>Returns itself an all ancestors in the visual tree.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventObserver">
+            <summary>
+            EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventObserver.#ctor(System.Reflection.EventInfo,System.Object,System.Delegate)">
+            <summary>
+            Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach.
+            </summary>
+            <param name="eventInfo">The event to attach and detach from.</param>
+            <param name="target">The target object the event is defined on. Null if the method is static.</param>
+            <param name="handler">The delegate to attach to the event.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventObserver.Dispose">
+            <summary>
+            Detaches the handler from the event.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTrigger">
+            <summary>
+            A trigger that listens for a specified event on its source and fires when that event is fired.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase`1">
+            <summary>
+            Represents a trigger that can listen to an element other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type that this trigger can be associated with.</typeparam>
+            <remarks>
+               EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. 
+               This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a 
+               change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source 
+               element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be 
+               constrained by the generic type parameter. If you need control over the type of the 
+               AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase">
+            <summary>
+            Represents a trigger that can listen to an object other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from EventTriggerBase&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase">
+            <summary>
+            Represents an object that can invoke Actions conditionally.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from Trigger&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.InvokeActions(System.Object)">
+            <summary>
+            Invoke all actions associated with this trigger.
+            </summary>
+            <remarks>Derived classes should call this to fire the trigger.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.CreateInstanceCore">
+            <summary>
+            Creates a new instance of the TriggerBase derived class.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same trigger on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the trigger type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.Actions">
+            <summary>
+            Gets the actions associated with this trigger.
+            </summary>
+            <value>The actions associated with this trigger.</value>
+        </member>
+        <member name="E:System.Windows.Interactivity.TriggerBase.PreviewInvoke">
+            <summary>
+            Event handler for registering to PreviewInvoke.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.GetEventName">
+            <summary>
+            Specifies the name of the Event this EventTriggerBase is listening for.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnEvent(System.EventArgs)">
+            <summary>
+            Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger.
+            </summary>
+            <param name="eventArgs">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
+            <remarks>Override this to provide more granular control over when actions associated with this trigger will be invoked.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnSourceChangedImpl(System.Object,System.Object)">
+            <summary>
+            Called when the source changes.
+            </summary>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+            <remarks>This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.RegisterEvent(System.Object,System.String)">
+            <exception cref="T:System.ArgumentException">Could not find eventName on the Target.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceTypeConstraint">
+            <summary>
+            Gets the source type constraint.
+            </summary>
+            <value>The source type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceObject">
+            <summary>
+            Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceName">
+            <summary>
+            Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used.  This is a dependency property.
+            </summary>
+            <value>The name of the source element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is not set or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The element pointed to by <c cref="P:System.Windows.Interactivity.EventTriggerBase.Source"/> does not satisify the type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.OnSourceChanged(`0,`0)">
+            <summary>
+            Called when the source property changes.
+            </summary>
+            <remarks>Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject.</remarks>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase`1.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is not set or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+            <param name="eventName">Name of the event.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTrigger.EventName">
+            <summary>
+            Gets or sets the name of the event to listen for. This is a dependency property.
+            </summary>
+            <value>The name of the event.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Interaction">
+            <summary>
+            Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.TriggersProperty">
+            <summary>
+            This property is used as the internal backing store for the public Triggers attached property.
+            </summary>
+            <remarks>
+            This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the
+            collection, ensuring the collection exists and is set before it is used.
+            </remarks>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.BehaviorsProperty">
+            <summary>
+            This property is used as the internal backing store for the public Behaviors attached property.
+            </summary>
+            <remarks>
+            This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the
+            collection, ensuring the collection exists and is set before it is used.
+            </remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetTriggers(System.Windows.DependencyObject)">
+            <summary>
+            Gets the TriggerCollection containing the triggers associated with the specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the triggers.</param>
+            <returns>A TriggerCollection containing the triggers associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetBehaviors(System.Windows.DependencyObject)">
+            <summary>
+            Gets the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> associated with a specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/>.</param>
+            <returns>A <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> containing the behaviors associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnBehaviorsChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same BehaviorCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnTriggersChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.IsElementLoaded(System.Windows.FrameworkElement)">
+            <summary>
+            A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight.
+            </summary>
+            <param name="element">The element of interest.</param>
+            <returns>True if the element has been loaded; otherwise, False.</returns>
+        </member>
+        <member name="P:System.Windows.Interactivity.Interaction.ShouldRunInDesignMode">
+            <summary>
+            Gets or sets a value indicating whether to run as if in design mode.
+            </summary>
+            <value>
+               <c>True</c> if [should run in design mode]; otherwise, <c>False</c>.
+            </value>
+            <remarks>Not to be used outside unit tests.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.InvokeCommandAction">
+            <summary>
+            Executes a specified ICommand when invoked.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction`1">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <typeparam name="T">The type to which this action can be attached.</typeparam>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.CallInvoke(System.Object)">
+            <summary>
+            Attempts to invoke the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.CreateInstanceCore">
+            <summary>
+            When implemented in a derived class, creates a new instance of the <see cref="T:System.Windows.Freezable"/> derived class.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerAction on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the TriggerAction type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsEnabled">
+            <summary>
+            Gets or sets a value indicating whether this action will run when invoked. This is a dependency property.
+            </summary>
+            <value>
+               <c>True</c> if this action will be run when invoked; otherwise, <c>False</c>.
+            </value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObject">
+            <summary>
+            Gets the object to which this action is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsHosted">
+            <summary>
+            Gets or sets a value indicating whether this instance is attached.
+            </summary>
+            <value><c>True</c> if this instance is attached; otherwise, <c>False</c>.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.InvokeCommandAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandName">
+            <summary>
+            Gets or sets the name of the command this action should invoke.
+            </summary>
+            <value>The name of the command this action should invoke.</value>
+            <remarks>This property will be superseded by the Command property if both are set.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.Command">
+            <summary>
+            Gets or sets the command this action should invoke. This is a dependency property.
+            </summary>
+            <value>The command to execute.</value>
+            <remarks>This property will take precedence over the CommandName property if both are set.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandParameter">
+            <summary>
+            Gets or sets the command parameter. This is a dependency property.
+            </summary>
+            <value>The command parameter.</value>
+            <remarks>This is the value passed to ICommand.CanExecute and ICommand.Execute.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolvedEventArgs">
+            <summary>
+            Provides data about which objects were affected when resolving a name change.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolver">
+            <summary>
+            Helper class to handle the logic of resolving a TargetName into a Target element
+            based on the context provided by a host element.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.NameResolver.UpdateObjectFromName(System.Windows.DependencyObject)">
+            <summary>
+            Attempts to update the resolved object from the name within the context of the namescope reference element.
+            </summary>
+            <param name="oldObject">The old resolved object.</param>
+            <remarks>
+            Resets the existing target and attempts to resolve the current TargetName from the
+            context of the current Host. If it cannot resolve from the context of the Host, it will
+            continue up the visual tree until it resolves. If it has not resolved it when it reaches
+            the root, it will set the Target to null and write a warning message to Debug output.
+            </remarks>
+        </member>
+        <member name="E:System.Windows.Interactivity.NameResolver.ResolvedElementChanged">
+            <summary>
+            Occurs when the resolved element has changed.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Name">
+            <summary>
+            Gets or sets the name of the element to attempt to resolve.
+            </summary>
+            <value>The name to attempt to resolve.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Object">
+            <summary>
+            The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.NameScopeReferenceElement">
+            <summary>
+            Gets or sets the reference element from which to perform the name resolution.
+            </summary>
+            <value>The reference element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.PendingReferenceElementLoad">
+            <summary>
+            Gets or sets a value indicating whether the reference element load is pending.
+            </summary>
+            <value>
+               <c>True</c> if [pending reference element load]; otherwise, <c>False</c>.
+            </value>
+            <remarks>
+            If the Host has not been loaded, the name will not be resolved.
+            In that case, delay the resolution and track that fact with this property.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction`1">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type constraint on the target.</typeparam>
+            <remarks>
+               TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. 
+               This allows a user to invoke the action on an element other than the one it is attached to in response to a 
+               trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching 
+               for the associated element. The type of the Target element can be constrained by the generic type parameter. If 
+               you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TargetedTriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnTargetChangedImpl(System.Object,System.Object)">
+            <summary>
+            Called when the target changes.
+            </summary>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+            <remarks>This function should be overriden in derived classes to hook and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetObject">
+            <summary>
+            Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetName">
+            <summary>
+            Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The name of the target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.Target">
+            <summary>
+            Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The Target element does not satisfy the type constraint.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetTypeConstraint">
+            <summary>
+            Gets the target type constraint.
+            </summary>
+            <value>The target type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TargetedTriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.OnTargetChanged(`0,`0)">
+            <summary>
+            Called when the target property changes.
+            </summary>
+            <remarks>Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject.</remarks>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction`1.Target">
+            <summary>
+            Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerActionCollection">
+            <summary>
+            Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerActionCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemAdded(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemRemoved(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.CreateInstanceCore">
+            <summary>
+            Creates a new instance of the TriggerActionCollection.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase`1">
+            <summary>
+            Represents an object that can invoke actions conditionally.
+            </summary>
+            <typeparam name="T">The type to which this trigger can be attached.</typeparam>
+            <remarks>
+               TriggerBase is the base class for controlling actions. Override OnAttached() and 
+               OnDetaching() to hook and unhook handlers on the AssociatedObject. You may 
+               constrain the types that a derived TriggerBase may be attached to by specifying 
+               the generic parameter. Call InvokeActions() to fire all Actions associated with 
+               this TriggerBase.
+            </remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.PreviewInvokeEventArgs">
+            <summary>
+            Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger.
+            </summary>
+            <remarks>This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerCollection">
+            <summary>
+             Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+             </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemAdded(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemRemoved(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.CreateInstanceCore">
+            <summary>
+            Creates a new instance of the <see cref="T:System.Windows.Interactivity.TriggerCollection"/>.
+            </summary>
+            <returns>The new instance.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.TypeConstraintAttribute">
+            <summary>
+            Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TypeConstraintAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TypeConstraintAttribute"/> class.
+            </summary>
+            <param name="constraint">The constraint type.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TypeConstraintAttribute.Constraint">
+            <summary>
+            Gets the constraint type.
+            </summary>
+            <value>The constraint type.</value>
+        </member>
+        <member name="T:ExceptionStringTable">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CannotHostBehaviorCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same BehaviorCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CannotHostBehaviorMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CannotHostTriggerActionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CannotHostTriggerCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CannotHostTriggerMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.CommandDoesNotExistOnBehaviorWarningMessage">
+            <summary>
+              Looks up a localized string similar to The command &quot;{0}&quot; does not exist or is not publicly exposed on {1}..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.DefaultTriggerAttributeInvalidTriggerTypeSpecifiedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to &quot;{0}&quot; is not a valid type for the TriggerType parameter. Make sure &quot;{0}&quot; derives from TriggerBase..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.DuplicateItemInCollectionExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot add the same instance of &quot;{0}&quot; to a &quot;{1}&quot; more than once..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.EventTriggerBaseInvalidEventExceptionMessage">
+            <summary>
+              Looks up a localized string similar to The event &quot;{0}&quot; on type &quot;{1}&quot; has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.EventTriggerCannotFindEventNameExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot find an event named &quot;{0}&quot; on type &quot;{1}&quot;..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.RetargetedTypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An object of type &quot;{0}&quot; cannot have a {3} property of type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can have only a {3} property of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.TypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot attach type &quot;{0}&quot; to type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can only be attached to objects of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:ExceptionStringTable.UnableToResolveTargetNameWarningMessage">
+            <summary>
+              Looks up a localized string similar to Unable to resolve TargetName &quot;{0}&quot;..
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.dll
new file mode 100644 (file)
index 0000000..029ea44
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.Extensions.xml
new file mode 100644 (file)
index 0000000..74d45a5
--- /dev/null
@@ -0,0 +1,900 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Caliburn.Micro.Extensions</name>
+    </assembly>
+    <members>
+        <member name="T:Caliburn.Micro.UriBuilder`1">
+            <summary>
+            Builds a Uri in a strongly typed fashion, based on a ViewModel.
+            </summary>
+            <typeparam name="TViewModel"></typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.UriBuilder`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.UriBuilder`1"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.UriBuilder`1.WithParam``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},``0)">
+            <summary>
+            Adds a query string parameter to the Uri.
+            </summary>
+            <typeparam name="TValue">The type of the value.</typeparam>
+            <param name="property">The property.</param>
+            <param name="value">The property value.</param>
+            <returns>Itself</returns>
+        </member>
+        <member name="M:Caliburn.Micro.UriBuilder`1.AttachTo(Caliburn.Micro.INavigationService)">
+            <summary>
+            Attaches a navigation servies to this builder.
+            </summary>
+            <param name="navigationService">The navigation service.</param>
+            <returns>Itself</returns>
+        </member>
+        <member name="M:Caliburn.Micro.UriBuilder`1.Navigate">
+            <summary>
+            Navigates to the Uri represented by this builder.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.StorageMode">
+            <summary>
+            The mode used to save/restore data.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.StorageMode.Automatic">
+            <summary>
+            Automatic Determine the Mode
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.StorageMode.Temporary">
+            <summary>
+            Use Temporary storage.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.StorageMode.Permanent">
+            <summary>
+            Use Permenent storage.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.StorageMode.Any">
+            <summary>
+            Use any storage mechanism available.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.TaskExtensionMethods">
+            <summary>
+            Extension methods related to phone tasks.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.TaskExtensionMethods.RequestTask``1(Caliburn.Micro.IEventAggregator,System.Action{``0},System.Object)">
+            <summary>
+            Creates a task and publishes it using the <see cref="T:Caliburn.Micro.EventAggregator"/>.
+            </summary>
+            <typeparam name="TTask">The task to create.</typeparam>
+            <param name="events">The event aggregator.</param>
+            <param name="configure">Optional configuration for the task.</param>
+            <param name="state">Optional state to be passed along to the task completion message.</param>
+        </member>
+        <member name="T:Caliburn.Micro.TaskCompleted`1">
+            <summary>
+            A message which is published when a task completes.
+            </summary>
+            <typeparam name="TTaskEventArgs">The type of the task event args.</typeparam>
+        </member>
+        <member name="F:Caliburn.Micro.TaskCompleted`1.State">
+            <summary>
+            Optional state provided by the original sender.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.TaskCompleted`1.Result">
+            <summary>
+            The results of the task.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IVibrateController">
+            <summary>
+            Allows applications to start and stop vibration on the device.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IVibrateController.Start(System.TimeSpan)">
+            <summary>
+            Starts vibration on the device.
+            </summary>
+            <param name="duration">A TimeSpan object specifying the amount of time for which the phone vibrates.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IVibrateController.Stop">
+            <summary>
+            Stops vibration on the device.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.SystemVibrateController">
+            <summary>
+            The default implementation of <see cref="T:Caliburn.Micro.IVibrateController"/>, using the system controller.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SystemVibrateController.Start(System.TimeSpan)">
+            <summary>
+            Starts vibration on the device.
+            </summary>
+            <param name="duration">A TimeSpan object specifying the amount of time for which the phone vibrates.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SystemVibrateController.Stop">
+            <summary>
+            Stops vibration on the device.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.SimpleContainer">
+            <summary>
+              A simple IoC container.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.SimpleContainer"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.RegisterInstance(System.Type,System.String,System.Object)">
+            <summary>
+              Registers the instance.
+            </summary>
+            <param name = "service">The service.</param>
+            <param name = "key">The key.</param>
+            <param name = "implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.RegisterPerRequest(System.Type,System.String,System.Type)">
+            <summary>
+              Registers the class so that a new instance is created on every request.
+            </summary>
+            <param name = "service">The service.</param>
+            <param name = "key">The key.</param>
+            <param name = "implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.RegisterSingleton(System.Type,System.String,System.Type)">
+            <summary>
+              Registers the class so that it is created once, on first request, and the same instance is returned to all requestors thereafter.
+            </summary>
+            <param name = "service">The service.</param>
+            <param name = "key">The key.</param>
+            <param name = "implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.RegisterHandler(System.Type,System.String,System.Func{Caliburn.Micro.SimpleContainer,System.Object})">
+            <summary>
+              Registers a custom handler for serving requests from the container.
+            </summary>
+            <param name = "service">The service.</param>
+            <param name = "key">The key.</param>
+            <param name = "handler">The handler.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.GetInstance(System.Type,System.String)">
+            <summary>
+              Requests an instance.
+            </summary>
+            <param name = "service">The service.</param>
+            <param name = "key">The key.</param>
+            <returns>The instance, or null if a handler is not found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.GetAllInstances(System.Type)">
+            <summary>
+              Requests all instances of a given type.
+            </summary>
+            <param name = "service">The service.</param>
+            <returns>All the instances or an empty enumerable if none are found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.BuildUp(System.Object)">
+            <summary>
+              Pushes dependencies into an existing instance based on interface properties with setters.
+            </summary>
+            <param name = "instance">The instance.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.CreateChildContainer">
+            <summary>
+            Creates a child container.
+            </summary>
+            <returns>A new container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.BuildInstance(System.Type)">
+            <summary>
+              Actually does the work of creating the instance and satisfying it's constructor dependencies.
+            </summary>
+            <param name = "type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Caliburn.Micro.SimpleContainer.ActivateInstance(System.Type,System.Object[])">
+            <summary>
+              Creates an instance of the type with the specified constructor arguments.
+            </summary>
+            <param name = "type">The type.</param>
+            <param name = "args">The constructor args.</param>
+            <returns>The created instance.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.SimpleContainer.Activated">
+            <summary>
+              Occurs when a new instance is created.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.StorageHandler`1">
+            <summary>
+            Handles the storage of a pariticular class.
+            </summary>
+            <typeparam name="T">The type that this class handles.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.IStorageHandler">
+            <summary>
+            Handles the storage of an object instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageHandler.Configure">
+            <summary>
+            Overrided by inheritors to configure the handler for use.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageHandler.Handles(System.Object)">
+            <summary>
+            Indicates whether the specified instance can be stored by this handler.
+            </summary>
+            <param name="instance">The instance.</param>
+            <returns></returns>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageHandler.Save(System.Object,Caliburn.Micro.StorageMode)">
+            <summary>
+            Saves the specified instance.
+            </summary>
+            <param name="instance">The instance.</param>
+            <param name="mode">The mode.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageHandler.Restore(System.Object,Caliburn.Micro.StorageMode)">
+            <summary>
+            Restores the specified instance.
+            </summary>
+            <param name="instance">The instance.</param>
+            <param name="mode">The mode.</param>
+        </member>
+        <member name="P:Caliburn.Micro.IStorageHandler.Coordinator">
+            <summary>
+            Gets or sets the coordinator.
+            </summary>
+            <value>
+            The coordinator.
+            </value>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Id(System.Func{`0,System.Object})">
+            <summary>
+            Provides a mechanism for obtaining an instance's unique id.
+            </summary>
+            <param name="getter">The getter.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Configure">
+            <summary>
+            Overrided by inheritors to configure the handler for use.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.EntireGraph``1(System.String)">
+            <summary>
+            Instructs the handler to store the entire object graph, rather than individual properties.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <param name="storageKey">The optional storage key.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Property(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
+            <summary>
+            Instructs the handler to store a property.
+            </summary>
+            <param name="property">The property.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Child(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
+            <summary>
+            Instructs the handler to store a child object's properties.
+            </summary>
+            <param name="property">The property.</param>
+            <returns>The builder.</returns>
+            <remarks>This assumes that the parent instance provides the child instance, but that the child instance's properties are handled by a unique handler.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.AddInstruction">
+            <summary>
+            Adds a new storage instruction.
+            </summary>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Save(`0,Caliburn.Micro.StorageMode)">
+            <summary>
+            Uses this handler to save a particular instance using instructions that support the provided mode.
+            </summary>
+            <param name="instance">The instance.</param>
+            <param name="mode">The storage mode.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageHandler`1.Restore(`0,Caliburn.Micro.StorageMode)">
+            <summary>
+            Uses this handler to restore a particular instance using instructions that support the provided mode.
+            </summary>
+            <param name="instance">The instance.</param>
+            <param name="mode">The mode.</param>
+        </member>
+        <member name="P:Caliburn.Micro.StorageHandler`1.Coordinator">
+            <summary>
+            Gets or sets the coordinator.
+            </summary>
+            <value>
+            The coordinator.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.StorageInstruction`1">
+            <summary>
+            An instruction for saving/loading data.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+        </member>
+        <member name="P:Caliburn.Micro.StorageInstruction`1.Owner">
+            <summary>
+            Gets or sets the owner.
+            </summary>
+            <value>
+            The owner.
+            </value>
+        </member>
+        <member name="P:Caliburn.Micro.StorageInstruction`1.StorageMechanism">
+            <summary>
+            Gets or sets the storage mechanism.
+            </summary>
+            <value>
+            The storage mechanism.
+            </value>
+        </member>
+        <member name="P:Caliburn.Micro.StorageInstruction`1.Key">
+            <summary>
+            Gets or sets the persistence key.
+            </summary>
+            <value>
+            The key.
+            </value>
+        </member>
+        <member name="P:Caliburn.Micro.StorageInstruction`1.Save">
+            <summary>
+            Gets or sets the save action.
+            </summary>
+            <value>
+            The save action.
+            </value>
+        </member>
+        <member name="P:Caliburn.Micro.StorageInstruction`1.Restore">
+            <summary>
+            Gets or sets the restore action.
+            </summary>
+            <value>
+            The restore action.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.StorageInstructionExtensions">
+            <summary>
+            Extension methods for configuring storage instructions.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.InPhoneState``1(Caliburn.Micro.StorageInstructionBuilder{``0})">
+            <summary>
+            Stores the data in the transient phone State.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="builder">The builder.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.InAppSettings``1(Caliburn.Micro.StorageInstructionBuilder{``0})">
+            <summary>
+            Stores the data in the permanent ApplicationSettings.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="builder">The builder.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.RestoreAfterActivation``1(Caliburn.Micro.StorageInstructionBuilder{``0})">
+            <summary>
+            Restores the data when IActivate.Activated is raised.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="builder">The builder.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.RestoreAfterViewLoad``1(Caliburn.Micro.StorageInstructionBuilder{``0})">
+            <summary>
+            Restores the data after view's Loaded event is raised.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="builder">The builder.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.RestoreAfterViewReady``1(Caliburn.Micro.StorageInstructionBuilder{``0})">
+            <summary>
+            Restores the data after view's LayoutUpdated event is raised.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="builder">The builder.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionExtensions.ActiveItemIndex``1(Caliburn.Micro.StorageHandler{``0})">
+            <summary>
+            Stores the index of the Conductor's ActiveItem.
+            </summary>
+            <typeparam name="T">The model type.</typeparam>
+            <param name="handler">The handler.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.StorageInstructionBuilder`1">
+            <summary>
+            Used to create a fluent interface for building up a storage instruction.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionBuilder`1.#ctor(Caliburn.Micro.StorageInstruction{`0})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.StorageInstructionBuilder`1"/> class.
+            </summary>
+            <param name="storageInstruction">The storage instruction.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageInstructionBuilder`1.Configure(System.Action{Caliburn.Micro.StorageInstruction{`0}})">
+            <summary>
+            Configures the instruction with the specified behavior.
+            </summary>
+            <param name="configure">The configuration callback.</param>
+            <returns>Itself</returns>
+        </member>
+        <member name="T:Caliburn.Micro.PhoneContainer">
+            <summary>
+            A custom IoC container which integrates with the phone and properly registers all Caliburn.Micro services.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IPhoneContainer">
+            <summary>
+            Defines an interface through which the storage system can communicate with an IoC container.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IPhoneContainer.RegisterWithPhoneService(System.Type,System.String,System.Type)">
+            <summary>
+            Registers the service as a singleton stored in the phone state.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="phoneStateKey">The phone state key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IPhoneContainer.RegisterWithAppSettings(System.Type,System.String,System.Type)">
+            <summary>
+            Registers the service as a singleton stored in the app settings.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="appSettingsKey">The app settings key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneContainer.Activated">
+            <summary>
+            Occurs when a new instance is created.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneContainer.#ctor(System.Windows.Controls.Frame)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.PhoneContainer"/> class.
+            </summary>
+            <param name="rootFrame">The root frame.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneContainer.RegisterWithPhoneService(System.Type,System.String,System.Type)">
+            <summary>
+            Registers the service as a singleton stored in the phone state.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="phoneStateKey">The phone state key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneContainer.RegisterWithAppSettings(System.Type,System.String,System.Type)">
+            <summary>
+            Registers the service as a singleton stored in the app settings.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="appSettingsKey">The app settings key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneContainer.RegisterPhoneServices(System.Boolean)">
+            <summary>
+            Registers the Caliburn.Micro services with the container.
+            </summary>
+            <param name="treatViewAsLoaded">if set to <c>true</c> [treat view as loaded].</param>
+        </member>
+        <member name="T:Caliburn.Micro.NavigationExtensions">
+            <summary>
+            Extension methods related to navigation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.NavigationExtensions.UriFor``1(Caliburn.Micro.INavigationService)">
+            <summary>
+            Creates a Uri builder based on a view model type.
+            </summary>
+            <typeparam name="TViewModel">The type of the view model.</typeparam>
+            <param name="navigationService">The navigation service.</param>
+            <returns>The builder.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.WindowManagerExtensions">
+            <summary>
+            WindowManager extensions
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManagerExtensions.ShowDialogWithFeedback(Caliburn.Micro.IWindowManager,System.Object,System.Object,System.Uri,System.Boolean)">
+            <summary>
+              Shows a modal dialog for the specified model, using vibrate and audio feedback
+            </summary>
+            <param name = "windowManager">The WindowManager instance.</param>
+            <param name = "rootModel">The root model.</param>
+            <param name = "context">The context.</param>
+            <param name="wavOpeningSound">If not null, use the specified .wav as opening sound</param>
+            <param name="vibrate">If true, use a vibration feedback on dialog opening</param>
+        </member>
+        <member name="T:Caliburn.Micro.StorageCoordinator">
+            <summary>
+            Coordinates the saving and loading of objects based on application lifecycle events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.#ctor(Caliburn.Micro.IPhoneContainer,Caliburn.Micro.IPhoneService,System.Collections.Generic.IEnumerable{Caliburn.Micro.IStorageMechanism},System.Collections.Generic.IEnumerable{Caliburn.Micro.IStorageHandler})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.StorageCoordinator"/> class.
+            </summary>
+            <param name="container">The container.</param>
+            <param name="phoneService">The phone service.</param>
+            <param name="storageMechanisms">The storage mechanisms.</param>
+            <param name="handlers">The handlers.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.Start">
+            <summary>
+            Starts monitoring application and container events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.Stop">
+            <summary>
+            Stops monitoring application and container events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.GetStorageMechanism``1">
+            <summary>
+            Gets the storage mechanism.
+            </summary>
+            <typeparam name="T">The type of storage mechanism to get.</typeparam>
+            <returns>The storage mechanism.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.AddStorageMechanism(Caliburn.Micro.IStorageMechanism)">
+            <summary>
+            Adds the storage mechanism.
+            </summary>
+            <param name="storageMechanism">The storage mechanism.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.AddStorageHandler(Caliburn.Micro.IStorageHandler)">
+            <summary>
+            Adds the storage handler.
+            </summary>
+            <param name="handler">The handler.</param>
+            <returns>Itself</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.GetStorageHandlerFor(System.Object)">
+            <summary>
+            Gets the storage handler for a paricular instance.
+            </summary>
+            <param name="instance">The instance.</param>
+            <returns>The storage handler.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.Save(Caliburn.Micro.StorageMode)">
+            <summary>
+            Saves all monitored instances according to the provided mode.
+            </summary>
+            <param name="saveMode">The save mode.</param>
+        </member>
+        <member name="M:Caliburn.Micro.StorageCoordinator.Restore(System.Object,Caliburn.Micro.StorageMode)">
+            <summary>
+            Restores the specified instance.
+            </summary>
+            <param name="instance">The instance.</param>
+            <param name="restoreMode">The restore mode.</param>
+        </member>
+        <member name="T:Caliburn.Micro.AppSettingsStorageMechanism">
+            <summary>
+            Stores data in the application settings.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IStorageMechanism">
+            <summary>
+            Implemented by classes that know how to store data.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.Supports(Caliburn.Micro.StorageMode)">
+            <summary>
+            Indicates what storage modes this mechanism provides.
+            </summary>
+            <param name="mode">The storage mode to check.</param>
+            <returns>Whether or not it is supported.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.BeginStoring">
+            <summary>
+            Begins the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.Store(System.String,System.Object)">
+            <summary>
+            Stores the value with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="data">The data.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.EndStoring">
+            <summary>
+            Ends the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.TryGet(System.String,System.Object@)">
+            <summary>
+            Tries to get the data previously stored with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <returns>true if found; false otherwise</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.Delete(System.String)">
+            <summary>
+            Deletes the data with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.ClearLastSession">
+            <summary>
+            Clears the data stored in the last storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IStorageMechanism.RegisterSingleton(System.Type,System.String,System.Type)">
+            <summary>
+            Registers service with the storage mechanism as a singleton.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="key">The key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.#ctor(Caliburn.Micro.IPhoneContainer)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.AppSettingsStorageMechanism"/> class.
+            </summary>
+            <param name="container">The container.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.Supports(Caliburn.Micro.StorageMode)">
+            <summary>
+            Indicates what storage modes this mechanism provides.
+            </summary>
+            <param name="mode">The storage mode to check.</param>
+            <returns>
+            Whether or not it is supported.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.BeginStoring">
+            <summary>
+            Begins the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.Store(System.String,System.Object)">
+            <summary>
+            Stores the value with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="data">The data.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.EndStoring">
+            <summary>
+            Ends the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.Delete(System.String)">
+            <summary>
+            Deletes the data with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.ClearLastSession">
+            <summary>
+            Clears the data stored in the last storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AppSettingsStorageMechanism.RegisterSingleton(System.Type,System.String,System.Type)">
+            <summary>
+            Registers service with the storage mechanism as a singleton.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="key">The key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ContainerExtensions">
+            <summary>
+            Extension methods for the <see cref="T:Caliburn.Micro.SimpleContainer"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.Singleton``1(Caliburn.Micro.SimpleContainer)">
+            <summary>
+            Registers a singleton.
+            </summary>
+            <typeparam name="TImplementation">The type of the implementation.</typeparam>
+            <param name="container">The container.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.Singleton``2(Caliburn.Micro.SimpleContainer)">
+            <summary>
+            Registers a singleton.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <typeparam name="TImplementation">The type of the implementation.</typeparam>
+            <param name="container">The container.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.PerRequest``2(Caliburn.Micro.SimpleContainer)">
+            <summary>
+            Registers an service to be created on each request.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <typeparam name="TImplementation">The type of the implementation.</typeparam>
+            <param name="container">The container.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.PerRequest``1(Caliburn.Micro.SimpleContainer)">
+            <summary>
+            Registers an service to be created on each request.
+            </summary>
+            <typeparam name="TImplementation">The type of the implementation.</typeparam>
+            <param name="container">The container.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.Instance``1(Caliburn.Micro.SimpleContainer,``0)">
+            <summary>
+            Registers an instance with the container.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <param name="container">The container.</param>
+            <param name="instance">The instance.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.Handler``1(Caliburn.Micro.SimpleContainer,System.Func{Caliburn.Micro.SimpleContainer,System.Object})">
+            <summary>
+            Registers a custom service handler with the container.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <param name="container">The container.</param>
+            <param name="handler">The handler.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ContainerExtensions.AllTypesOf``1(Caliburn.Micro.SimpleContainer,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
+            <summary>
+            Registers all specified types in an assembly as singletong in the container.
+            </summary>
+            <typeparam name="TService">The type of the service.</typeparam>
+            <param name="container">The container.</param>
+            <param name="assembly">The assembly.</param>
+            <param name="filter">The type filter.</param>
+            <returns>The container.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.TaskController">
+            <summary>
+            Handles <see cref="T:Caliburn.Micro.TaskExecutionRequested"/> messages and ensures that the property handler receives the completion message.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.TaskController.#ctor(Caliburn.Micro.IPhoneService,Caliburn.Micro.IEventAggregator)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.TaskController"/> class.
+            </summary>
+            <param name="phoneService">The phone service.</param>
+            <param name="events">The event aggregator.</param>
+        </member>
+        <member name="M:Caliburn.Micro.TaskController.Start">
+            <summary>
+            Starts monitoring for task requests and controlling completion messages.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.TaskController.Stop">
+            <summary>
+            Stops monitoring for task requests and controlling completion messages.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.TaskExecutionRequested">
+            <summary>
+            A message that is published to signify a components request for the execution of a particular task.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.TaskExecutionRequested.State">
+            <summary>
+            Optional state to be passed along to the task completion message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.TaskExecutionRequested.Task">
+            <summary>
+            The task instance.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.PhoneStateStorageMechanism">
+            <summary>
+            Stores data in the phone state.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.#ctor(Caliburn.Micro.IPhoneContainer,Caliburn.Micro.IPhoneService)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.PhoneStateStorageMechanism"/> class.
+            </summary>
+            <param name="container">The container.</param>
+            <param name="phoneService">The phone service.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.Supports(Caliburn.Micro.StorageMode)">
+            <summary>
+            Indicates what storage modes this mechanism provides.
+            </summary>
+            <param name="mode">The storage mode to check.</param>
+            <returns>
+            Whether or not it is supported.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.BeginStoring">
+            <summary>
+            Begins the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.Store(System.String,System.Object)">
+            <summary>
+            Stores the value with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="data">The data.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.EndStoring">
+            <summary>
+            Ends the storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.TryGet(System.String,System.Object@)">
+            <summary>
+            Tries to get the data previously stored with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <returns>
+            true if found; false otherwise
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.Delete(System.String)">
+            <summary>
+            Deletes the data with the specified key.
+            </summary>
+            <param name="key">The key.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.ClearLastSession">
+            <summary>
+            Clears the data stored in the last storage transaction.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneStateStorageMechanism.RegisterSingleton(System.Type,System.String,System.Type)">
+            <summary>
+            Registers service with the storage mechanism as a singleton.
+            </summary>
+            <param name="service">The service.</param>
+            <param name="key">The key.</param>
+            <param name="implementation">The implementation.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ISoundEffectPlayer">
+            <summary>
+            Service allowing to play a .wav sound effect
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ISoundEffectPlayer.Play(System.Uri)">
+            <summary>
+            Plays a sound effect
+            </summary>
+            <param name="wavResource">The uri of the resource containing the .wav file</param>
+        </member>
+        <member name="T:Caliburn.Micro.XnaSoundEffectPlayer">
+            <summary>
+            Default <see cref="T:Caliburn.Micro.ISoundEffectPlayer"/> implementation, using Xna Framework.
+            The sound effect is played without interrupting the music playback on the phone (which is required for the app certification
+            in the WP7 Marketplace.
+            Also note that using the Xna Framework in a WP7 Silverlight app is explicitly allowed for this very purpose.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.XnaSoundEffectPlayer.Play(System.Uri)">
+            <summary>
+            Plays a sound effect
+            </summary>
+            <param name="wavResource">The uri of the resource containing the .wav file</param>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.dll
new file mode 100644 (file)
index 0000000..61a0257
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/Caliburn.Micro.xml
new file mode 100644 (file)
index 0000000..302dbca
--- /dev/null
@@ -0,0 +1,2830 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Caliburn.Micro</name>
+    </assembly>
+    <members>
+        <member name="T:Caliburn.Micro.PhoneBootstrapper">
+            <summary>
+            A custom bootstrapper designed to setup phone applications.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bootstrapper">
+            <summary>
+            Instantiate this class in order to configure the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the bootstrapper.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartDesignTime">
+            <summary>
+            Called by the bootstrapper's constructor at design time to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartRuntime">
+            <summary>
+            Called by the bootstrapper's constructor at runtime to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.Configure">
+            <summary>
+            Override to configure the framework and setup your IoC container.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.PrepareApplication">
+            <summary>
+            Provides an opportunity to hook into the application object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.SelectAssemblies">
+            <summary>
+            Override to tell the framework where to find assemblies to inspect for views, etc.
+            </summary>
+            <returns>A list of assemblies to inspect.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetInstance(System.Type,System.String)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="service">The service to locate.</param>
+            <param name="key">The key to locate.</param>
+            <returns>The located service.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetAllInstances(System.Type)">
+            <summary>
+            Override this to provide an IoC specific implementation
+            </summary>
+            <param name="service">The service to locate.</param>
+            <returns>The located services.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.BuildUp(System.Object)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="instance">The instance to perform injection on.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnStartup(System.Object,System.Windows.StartupEventArgs)">
+            <summary>
+            Override this to add custom behavior to execute after the application starts.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnExit(System.Object,System.EventArgs)">
+            <summary>
+            Override this to add custom behavior on exit.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnUnhandledException(System.Object,System.Windows.ApplicationUnhandledExceptionEventArgs)">
+            <summary>
+            Override this to add custom behavior for unhandled exceptions.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Bootstrapper.Application">
+            <summary>
+            The application.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.PrepareApplication">
+            <summary>
+            Provides an opportunity to hook into the application object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.CreatePhoneApplicationFrame">
+            <summary>
+            Creates the root frame used by the application.
+            </summary>
+            <returns>The frame.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.OnLaunch(System.Object,Microsoft.Phone.Shell.LaunchingEventArgs)">
+            <summary>
+            Occurs when a fresh instance of the application is launching.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.OnActivate(System.Object,Microsoft.Phone.Shell.ActivatedEventArgs)">
+            <summary>
+            Occurs when a previously tombstoned or paused application is resurrected/resumed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.OnDeactivate(System.Object,Microsoft.Phone.Shell.DeactivatedEventArgs)">
+            <summary>
+            Occurs when the application is being tombstoned or paused.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneBootstrapper.OnClose(System.Object,Microsoft.Phone.Shell.ClosingEventArgs)">
+            <summary>
+            Occurs when the application is closing.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PhoneBootstrapper.RootFrame">
+            <summary>
+            The root frame used for navigation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.INavigationService">
+            <summary>
+            Implemented by services that provide <see cref="T:System.Uri"/> based navigation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INavigationService.StopLoading">
+            <summary>
+            Stops the loading process.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INavigationService.GoBack">
+            <summary>
+            Navigates back.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INavigationService.GoForward">
+            <summary>
+            Navigates forward.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INavigationService.Source">
+            <summary>
+            The <see cref="T:System.Uri"/> source.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INavigationService.CanGoBack">
+            <summary>
+            Indicates whether the navigator can navigate back.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INavigationService.CanGoForward">
+            <summary>
+            Indicates whether the navigator can navigate forward.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INavigationService.CurrentSource">
+            <summary>
+            The current <see cref="T:System.Uri"/> source.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INavigationService.CurrentContent">
+            <summary>
+            The current content.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.INavigationService.Navigated">
+            <summary>
+            Raised after navigation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.INavigationService.Navigating">
+            <summary>
+            Raised prior to navigation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.INavigationService.NavigationFailed">
+            <summary>
+            Raised when navigation fails.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.INavigationService.NavigationStopped">
+            <summary>
+            Raised when navigation is stopped.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.INavigationService.FragmentNavigation">
+            <summary>
+            Raised when a fragment navigation occurs.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.FrameAdapter">
+            <summary>
+            A basic implementation of <see cref="T:Caliburn.Micro.INavigationService"/> designed to adapt the <see cref="T:System.Windows.Controls.Frame"/> control.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.#ctor(System.Windows.Controls.Frame,System.Boolean)">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.FrameAdapter"/>
+            </summary>
+            <param name="frame">The frame to represent as a <see cref="T:Caliburn.Micro.INavigationService"/>.</param>
+            <param name="treatViewAsLoaded">Tells the frame adapter to assume that the view has already been loaded by the time OnNavigated is called. This is necessary when using the TransitionFrame.</param>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.OnNavigating(System.Object,System.Windows.Navigation.NavigatingCancelEventArgs)">
+            <summary>
+            Occurs before navigation
+            </summary>
+            <param name="sender">The event sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.OnNavigated(System.Object,System.Windows.Navigation.NavigationEventArgs)">
+            <summary>
+            Occurs after navigation
+            </summary>
+            <param name="sender">The event sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.TryInjectQueryString(System.Object,System.Windows.Controls.Page)">
+            <summary>
+            Attempts to inject query string parameters from the view into the view model.
+            </summary>
+            <param name="viewModel">The view model.</param>
+            <param name="page">The page.</param>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.StopLoading">
+            <summary>
+            Stops the loading process.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.GoBack">
+            <summary>
+            Navigates back.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.GoForward">
+            <summary>
+            Navigates forward.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.FrameAdapter.Navigate(System.Uri)">
+            <summary>
+            Navigates to the specified <see cref="T:System.Uri"/>.
+            </summary>
+            <param name="source">The <see cref="T:System.Uri"/> to navigate to.</param>
+            <returns>Whether or not navigation succeeded.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.FrameAdapter.Source">
+            <summary>
+            The <see cref="T:System.Uri"/> source.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.FrameAdapter.CanGoBack">
+            <summary>
+            Indicates whether the navigator can navigate back.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.FrameAdapter.CanGoForward">
+            <summary>
+            Indicates whether the navigator can navigate forward.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.FrameAdapter.CurrentSource">
+            <summary>
+            The current <see cref="T:System.Uri"/> source.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.FrameAdapter.CurrentContent">
+            <summary>
+            The current content.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.FrameAdapter.Navigated">
+            <summary>
+            Raised after navigation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.FrameAdapter.Navigating">
+            <summary>
+            Raised prior to navigation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.FrameAdapter.NavigationFailed">
+            <summary>
+            Raised when navigation fails.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.FrameAdapter.NavigationStopped">
+            <summary>
+            Raised when navigation is stopped.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.FrameAdapter.FragmentNavigation">
+            <summary>
+            Raised when a fragment navigation occurs.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.View">
+            <summary>
+            Hosts attached properties related to view models.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.DefaultContext">
+            <summary>
+            The default view context.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsLoadedProperty">
+            <summary>
+            A dependency property which allows the framework to track whether a certain element has already been loaded in certain scenarios.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsScopeRootProperty">
+            <summary>
+            A dependency property which marks an element as a name scope root.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ApplyConventionsProperty">
+            <summary>
+            A dependency property which allows the override of convention application behavior.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ContextProperty">
+            <summary>
+            A dependency property for assigning a context to a particular portion of the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ModelProperty">
+            <summary>
+            A dependency property for attaching a model to the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsGeneratedProperty">
+            <summary>
+            Used by the framework to indicate that this element was generated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.View.ExecuteOnLoad(System.Windows.FrameworkElement,System.Windows.RoutedEventHandler)">
+            <summary>
+            Executes the handler immediately if the element is loaded, otherwise wires it to the Loaded event.
+            </summary>
+            <param name="element">The element.</param>
+            <param name="handler">The handler.</param>
+            <returns>true if the handler was executed immediately; false otherwise</returns>
+        </member>
+        <member name="F:Caliburn.Micro.View.GetFirstNonGeneratedView">
+            <summary>
+            Used to retrieve the root, non-framework-created view.
+            </summary>
+            <param name="view">The view to search.</param>
+            <returns>The root element that was not created by the framework.</returns>
+            <remarks>In certain instances the services create UI elements.
+            For example, if you ask the window manager to show a UserControl as a dialog, it creates a window to host the UserControl in.
+            The WindowManager marks that element as a framework-created element so that it can determine what it created vs. what was intended by the developer.
+            Calling GetFirstNonGeneratedView allows the framework to discover what the original element was. 
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetApplyConventions(System.Windows.DependencyObject)">
+            <summary>
+            Gets the convention application behavior.
+            </summary>
+            <param name="d">The element the property is attached to.</param>
+            <returns>Whether or not to apply conventions.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetApplyConventions(System.Windows.DependencyObject,System.Nullable{System.Boolean})">
+            <summary>
+            Sets the convention application behavior.
+            </summary>
+            <param name="d">The element to attach the property to.</param>
+            <param name="value">Whether or not to apply conventions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model.
+            </summary>
+            <param name="d">The element to attach the model to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model.
+            </summary>
+            <param name="d">The element the model is attached to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the context.
+            </summary>
+            <param name="d">The element the context is attached to.</param>
+            <returns>The context.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the context.
+            </summary>
+            <param name="d">The element to attach the context to.</param>
+            <param name="value">The context.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Parser">
+            <summary>
+            Parses text into a fully functional set of <see cref="T:System.Windows.Interactivity.TriggerBase"/> instances with <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.Parse(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Parses the specified message text.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="text">The message text.</param>
+            <returns>The triggers parsed from the text.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateTrigger">
+            <summary>
+            The function used to generate a trigger.
+            </summary>
+            <remarks>The parameters passed to the method are the the target of the trigger and string representing the trigger.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.CreateMessage(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/> by parsing out the textual dsl.
+            </summary>
+            <param name="target">The target of the message.</param>
+            <param name="messageText">The textual message dsl.</param>
+            <returns>The created message.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.InterpretMessageText">
+            <summary>
+            Function used to parse a string identified as a message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateParameter">
+            <summary>
+            Function used to parse a string identified as a message parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.BindParameter(System.Windows.FrameworkElement,Caliburn.Micro.Parameter,System.String,System.String,System.Windows.Data.BindingMode)">
+            <summary>
+            Creates a binding on a <see cref="T:Caliburn.Micro.Parameter"/>.
+            </summary>
+            <param name="target">The target to which the message is applied.</param>
+            <param name="parameter">The parameter object.</param>
+            <param name="elementName">The name of the element to bind to.</param>
+            <param name="path">The path of the element to bind to.</param>
+            <param name="bindingMode">The binding mode to use.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Parameter">
+            <summary>
+            Represents a parameter of an <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parameter.ValueProperty">
+            <summary>
+            A dependency property representing the parameter's value.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parameter.MakeAwareOf(Caliburn.Micro.ActionMessage)">
+            <summary>
+            Makes the parameter aware of the <see cref="T:Caliburn.Micro.ActionMessage"/> that it's attached to.
+            </summary>
+            <param name="owner">The action message.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Parameter.Value">
+            <summary>
+            Gets or sets the value of the parameter.
+            </summary>
+            <value>The value.</value>
+        </member>
+        <member name="T:Caliburn.Micro.Execute">
+            <summary>
+              Enables easy marshalling of code to the UI thread.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.InitializeWithDispatcher">
+            <summary>
+              Initializes the framework using the current dispatcher.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.ResetWithoutDispatcher">
+            <summary>
+              Resets the executor to use a non-dispatcher-based action executor.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.OnUIThread(System.Action)">
+            <summary>
+              Executes the action on the UI thread.
+            </summary>
+            <param name = "action">The action to execute.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Execute.InDesignMode">
+            <summary>
+              Indicates whether or not the framework is in design-time mode.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.INotifyPropertyChangedEx">
+            <summary>
+              Extends <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> such that the change event can be raised by external parties.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INotifyPropertyChangedEx.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.PropertyChangedBase">
+            <summary>
+              A base class that implements the infrastructure for property change notification and automatically performs UI thread marshalling.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.#ctor">
+            <summary>
+              Creates an instance of <see cref="T:Caliburn.Micro.PropertyChangedBase"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange``1(System.Linq.Expressions.Expression{System.Func{``0}})">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <typeparam name = "TProperty">The type of the property.</typeparam>
+            <param name = "property">The property expression.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.RaisePropertyChangedEventImmediately(System.String)">
+            <summary>
+              Raises the property changed event immediately.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="E:Caliburn.Micro.PropertyChangedBase.PropertyChanged">
+            <summary>
+              Occurs when a property value changes.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PropertyChangedBase.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IObservableCollection`1">
+            <summary>
+              Represents a collection that is observable.
+            </summary>
+            <typeparam name = "T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="T:Caliburn.Micro.BindableCollection`1">
+            <summary>
+            A base collection class that supports automatic UI thread marshalling.
+            </summary>
+            <typeparam name="T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+            <param name="collection">The collection from which the elements are copied.</param>
+            <exception cref="T:System.ArgumentNullException">
+              The <paramref name="collection"/> parameter cannot be null.
+            </exception>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)">
+            <summary>
+              Inserts the item to the specified position.
+            </summary>
+            <param name = "index">The index to insert at.</param>
+            <param name = "item">The item to be inserted.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)">
+            <summary>
+              Sets the item at the specified position.
+            </summary>
+            <param name = "index">The index to set the item at.</param>
+            <param name = "item">The item to set.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)">
+            <summary>
+              Removes the item at the specified position.
+            </summary>
+            <param name = "index">The position used to identify the item to remove.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItemBase(System.Int32)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItems">
+            <summary>
+              Clears the items contained by the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItemsBase">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.ClearItems"/> function.
+            </summary>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+            <summary>
+              Raises the <see cref = "E:System.Collections.ObjectModel.ObservableCollection`1.CollectionChanged" /> event with the provided arguments.
+            </summary>
+            <param name = "e">Arguments of the event being raised.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
+            <summary>
+              Raises the PropertyChanged event with the provided arguments.
+            </summary>
+            <param name = "e">The event data to report in the event.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="P:Caliburn.Micro.BindableCollection`1.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ILog">
+            <summary>
+            A logger.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Info(System.String,System.Object[])">
+            <summary>
+            Logs the message as info.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Warn(System.String,System.Object[])">
+            <summary>
+            Logs the message as a warning.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Error(System.Exception)">
+            <summary>
+            Logs the exception.
+            </summary>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="T:Caliburn.Micro.LogManager">
+            <summary>
+            Used to manage logging.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.LogManager.GetLog">
+            <summary>
+            Creates an <see cref="T:Caliburn.Micro.ILog"/> for the provided type.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Tuple`3">
+            <summary>
+            Represents a tuple with three items.
+            </summary>
+            <typeparam name="TItem1"></typeparam>
+            <typeparam name="TItem2"></typeparam>
+            <typeparam name="TItem3"></typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.Tuple`3.#ctor(`0,`1,`2)">
+            <summary>
+            Creates an instance of the tuple.
+            </summary>
+            <param name="item1">The first item.</param>
+            <param name="item2">The second item.</param>
+            <param name="item3">The third item.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Tuple`3.Item1">
+            <summary>
+            Gets or Sets the first item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Tuple`3.Item2">
+            <summary>
+            Gets or Sets the second item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Tuple`3.Item3">
+            <summary>
+            Gets or Sets the third item.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.AppBarButton">
+            <summary>
+            An <see cref="T:Microsoft.Phone.Shell.ApplicationBarIconButton"/> capable of triggering action messages.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.AppBarButton.Message">
+            <summary>
+            The action message.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.AppBarMenuItem">
+            <summary>
+            An <see cref="T:Microsoft.Phone.Shell.ApplicationBarMenuItem"/> capable of triggering action messages.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.AppBarMenuItem.Message">
+            <summary>
+            The action message.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.AttachedCollection`1">
+            <summary>
+            A collection that can exist as part of a behavior.
+            </summary>
+            <typeparam name="T">The type of item in the attached collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.AttachedCollection`1"/>
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attached the collection.
+            </summary>
+            <param name="dependencyObject">The dependency object to attach the collection to.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Detach">
+            <summary>
+            Detaches the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemAdded(`0)">
+            <summary>
+            Called when an item is added from the collection.
+            </summary>
+            <param name="item">The item that was added.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The itme that was removed.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Screen">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IScreen"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAware">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IViewAware"/> which is capable of caching views by context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IViewAware">
+            <summary>
+            Denotes a class which is aware of its view(s).
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.AttachView(System.Object,System.Object)">
+            <summary>
+            Attaches a view to this instance.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.GetView(System.Object)">
+            <summary>
+            Gets a view previously attached to this instance.
+            </summary>
+            <param name="context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.IViewAware.ViewAttached">
+            <summary>
+            Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.CacheViewsByDefault">
+            <summary>
+            Indicates whether or not implementors of <see cref="T:Caliburn.Micro.IViewAware"/> should cache their views by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.Views">
+            <summary>
+              The view chache for this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor(System.Boolean)">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+            <param name="cacheViews">Indicates whether or not this instance maintains a view cache.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewAttached(System.Object,System.Object)">
+            <summary>
+            Called when a view is attached.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewLoaded(System.Object)">
+            <summary>
+              Called when an attached view's Loaded event fires.
+            </summary>
+            <param name = "view"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewReady(System.Object)">
+            <summary>
+              Called the first time the page's LayoutUpdated event fires after it is navigated to.
+            </summary>
+            <param name = "view"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.GetView(System.Object)">
+            <summary>
+              Gets a view previously attached to this instance.
+            </summary>
+            <param name = "context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ViewAware.ViewAttached">
+            <summary>
+              Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ViewAware.CacheViews">
+            <summary>
+              Indicates whether or not this instance maintains a view cache.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IScreen">
+            <summary>
+            Denotes an instance which implements <see cref="T:Caliburn.Micro.IHaveDisplayName"/>, <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/> and <see cref="T:Caliburn.Micro.INotifyPropertyChangedEx"/>
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveDisplayName">
+            <summary>
+            Denotes an instance which has a display name.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveDisplayName.DisplayName">
+            <summary>
+            Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IActivate">
+            <summary>
+            Denotes an instance which requires activation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IActivate.Activate">
+            <summary>
+            Activates this instance.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IActivate.IsActive">
+            <summary>
+             Indicates whether or not this instance is active.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IActivate.Activated">
+            <summary>
+            Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IDeactivate">
+            <summary>
+            Denotes an instance which requires deactivation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IDeactivate.Deactivate(System.Boolean)">
+            <summary>
+            Deactivates this instance.
+            </summary>
+            <param name="close">Indicates whether or not this instance is being closed.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.AttemptingDeactivation">
+            <summary>
+            Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.Deactivated">
+            <summary>
+            Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IGuardClose">
+            <summary>
+            Denotes an instance which may prevent closing.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IClose">
+            <summary>
+            Denotes an object that can be closed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IClose.TryClose">
+            <summary>
+            Tries to close this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IGuardClose.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementer calls this action with the result of the close check.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IChild">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IChild.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.#ctor">
+            <summary>
+              Creates an instance of the screen.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnInitialize">
+            <summary>
+              Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnActivate">
+            <summary>
+              Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnDeactivate(System.Boolean)">
+            <summary>
+              Called when deactivating.
+            </summary>
+            <param name = "close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.CanClose(System.Action{System.Boolean})">
+            <summary>
+              Called to check whether or not this instance can close.
+            </summary>
+            <param name = "callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.TryClose">
+            <summary>
+              Tries to close this instance by asking its Parent to initiate shutdown or by asking its corresponding view to close.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.Parent">
+            <summary>
+              Gets or Sets the Parent <see cref="T:Caliburn.Micro.IConductor"/>
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.DisplayName">
+            <summary>
+              Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsActive">
+            <summary>
+              Indicates whether or not this instance is currently active.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsInitialized">
+            <summary>
+              Indicates whether or not this instance is currently initialized.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Activated">
+            <summary>
+              Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.AttemptingDeactivation">
+            <summary>
+              Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Deactivated">
+            <summary>
+              Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to and activates only one item at a time.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBaseWithActiveItem`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/> that maintain an active item.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBase`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.IConductor">
+            <summary>
+            Denotes an instance which conducts other objects by managing an ActiveItem and maintaining a strict lifecycle.
+            </summary>
+            <remarks>Conducted instances can optin to the lifecycle by impelenting any of the follosing <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/>.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IParent">
+            <summary>
+              Interface used to define an object associated to a collection of children.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IParent.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.ActivateItem(System.Object)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.DeactivateItem(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IConductor.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IParent`1">
+            <summary>
+            Interface used to define a specialized parent.
+            </summary>
+            <typeparam name="T">The type of children.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IParent`1.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.OnActivationProcessed(`0,System.Boolean)">
+            <summary>
+            Called by a subclass when an activation needs processing.
+            </summary>
+            <param name="item">The item on which activation was attempted.</param>
+            <param name="success">if set to <c>true</c> activation was successful.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBase`1.CloseStrategy">
+            <summary>
+            Gets or sets the close strategy.
+            </summary>
+            <value>The close strategy.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ConductorBase`1.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IConductActiveItem">
+            <summary>
+            An <see cref="T:Caliburn.Micro.IConductor"/> that also implements <see cref="T:Caliburn.Micro.IHaveActiveItem"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveActiveItem">
+            <summary>
+            Denotes an instance which maintains an active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveActiveItem.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBaseWithActiveItem`1.ChangeActiveItem(`0,System.Boolean)">
+            <summary>
+            Changes the active item.
+            </summary>
+            <param name="newItem">The new item to activate.</param>
+            <param name="closePrevious">Indicates whether or not to close the previous active item.</param>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.Caliburn#Micro#IHaveActiveItem#ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+            <value></value>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.AllActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to many items wich are all activated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor(System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+            <param name="openPublicItems">if set to <c>true</c> opens public items that are properties of this class.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnInitialize">
+            <summary>
+            Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.AllActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.OneActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items but only activates on at a time.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.OneActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DetermineNextItemToActivate(System.Collections.Generic.IList{`0},System.Int32)">
+            <summary>
+            Determines the next item to activate based on the last active index.
+            </summary>
+            <param name="list">The list of possible active items.</param>
+            <param name="lastIndex">The index of the last active item.</param>
+            <returns>The next item to activate.</returns>
+            <remarks>Called after an active item is closed.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.OneActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IPhoneService">
+            <summary>
+              Implemented by services that provide access to the basic phone capabilities.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IPhoneService.State">
+            <summary>
+              The state that is persisted during the tombstoning process.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IPhoneService.StartupMode">
+            <summary>
+              Gets the mode in which the application was started.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Launching">
+            <summary>
+              Occurs when a fresh instance of the application is launching.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Activated">
+            <summary>
+              Occurs when a previously paused/tombstoned app is resumed/resurrected.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Deactivated">
+            <summary>
+              Occurs when the application is being paused or tombstoned.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Closing">
+            <summary>
+              Occurs when the application is closing.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Continuing">
+            <summary>
+              Occurs when the app is continuing from a temporarily paused state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Continued">
+            <summary>
+              Occurs after the app has continued from a temporarily paused state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Resurrecting">
+            <summary>
+              Occurs when the app is "resurrecting" from a tombstoned state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IPhoneService.Resurrected">
+            <summary>
+              Occurs after the app has "resurrected" from a tombstoned state.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IPhoneService.UserIdleDetectionMode">
+            <summary>
+              Gets or sets whether user idle detection is enabled.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IPhoneService.ApplicationIdleDetectionMode">
+            <summary>
+              Gets or sets whether application idle detection is enabled.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.PhoneApplicationServiceAdapter">
+            <summary>
+              An implementation of <see cref="T:Caliburn.Micro.IPhoneService"/> that adapts <see cref="T:Microsoft.Phone.Shell.PhoneApplicationService"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PhoneApplicationServiceAdapter.#ctor(System.Windows.Controls.Frame)">
+            <summary>
+              Creates an instance of <see cref="T:Caliburn.Micro.PhoneApplicationServiceAdapter"/>.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PhoneApplicationServiceAdapter.State">
+            <summary>
+              The state that is persisted during the tombstoning process.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PhoneApplicationServiceAdapter.StartupMode">
+            <summary>
+              Gets the mode in which the application was started.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Launching">
+            <summary>
+              Occurs when a fresh instance of the application is launching.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Activated">
+            <summary>
+              Occurs when a previously paused/tombstoned application instance is resumed/resurrected.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Deactivated">
+            <summary>
+              Occurs when the application is being paused or tombstoned.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Closing">
+            <summary>
+              Occurs when the application is closing.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Continuing">
+            <summary>
+              Occurs when the app is continuing from a temporarily paused state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Continued">
+            <summary>
+              Occurs after the app has continued from a temporarily paused state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Resurrecting">
+            <summary>
+              Occurs when the app is "resurrecting" from a tombstoned state.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.PhoneApplicationServiceAdapter.Resurrected">
+            <summary>
+              Occurs after the app has "resurrected" from a tombstoned state.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PhoneApplicationServiceAdapter.UserIdleDetectionMode">
+            <summary>
+              Gets or sets whether user idle detection is enabled.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PhoneApplicationServiceAdapter.ApplicationIdleDetectionMode">
+            <summary>
+              Gets or sets whether application idle detection is enabled.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelLocator">
+            <summary>
+              A strategy for determining which view model to use for a given view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelLocator.MakeInterface(System.String)">
+            <summary>
+              Makes a type name into an interface name.
+            </summary>
+            <param name = "typeName">The part.</param>
+            <returns></returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateTypeForViewType">
+            <summary>
+              Determines the view model type based on the specified view type.
+            </summary>
+            <returns>The view model type.</returns>
+            <remarks>
+              Pass the view type and receive a view model type. Pass true for the second parameter to search for interfaces.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForViewType">
+            <summary>
+              Locates the view model for the specified view type.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view type as a parameter and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForView">
+            <summary>
+              Locates the view model for the specified view instance.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view instance as a parameters and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IoC">
+            <summary>
+            Used by the framework to pull instances from an IoC container and to inject dependencies into certain existing classes.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetInstance">
+            <summary>
+            Gets an instance by type and key.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetAllInstances">
+            <summary>
+            Gets all instances of a particular type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.BuildUp">
+            <summary>
+            Passes an existing instance to the IoC container to enable dependencies to be injected.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1">
+            <summary>
+            Gets an instance by type.
+            </summary>
+            <typeparam name="T">The type to resolve from the container.</typeparam>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1(System.String)">
+            <summary>
+            Gets an instance from the container using type and key.
+            </summary>
+            <typeparam name="T">The type to resolve.</typeparam>
+            <param name="key">The key to look up.</param>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Action">
+            <summary>
+            A host for action related attached properties.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element will be set to this instance.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetWithoutContextProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element is not set to this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTarget(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTarget(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTargetWithoutContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+            <remarks>The DataContext will not be set.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTargetWithoutContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.HasTargetSet(System.Windows.DependencyObject)">
+            <summary>
+             Checks if the <see cref="T:Caliburn.Micro.ActionMessage"/>-Target was set.
+            </summary>
+            <param name="element">DependencyObject to check</param>
+            <returns>True if Target or TargetWithoutContext was set on <paramref name="element"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.Invoke(System.Object,System.String,System.Windows.DependencyObject,System.Windows.FrameworkElement,System.Object,System.Object[])">
+            <summary>
+             Uses the action pipeline to invoke the method.
+            </summary>
+            <param name="target">The object instance to invoke the method on.</param>
+            <param name="methodName">The name of the method to invoke.</param>
+            <param name="view">The view.</param>
+            <param name="source">The source of the invocation.</param>
+            <param name="eventArgs">The event args.</param>
+            <param name="parameters">The method parameters.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IWindowManager">
+            <summary>
+              A service that manages windows.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+              Shows a modal dialog for the specified model.
+            </summary>
+            <param name = "rootModel">The root model.</param>
+            <param name = "context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+              Shows a popup at the current mouse position.
+            </summary>
+            <param name = "rootModel">The root model.</param>
+            <param name = "context">The view context.</param>
+            <param name = "settings">The optional popup settings.</param>
+        </member>
+        <member name="T:Caliburn.Micro.WindowManager">
+            <summary>
+              A service that manages windows.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.WindowManager.IsSystemDialogNavigation">
+            <summary>
+            Predicate used to determine whether a page being navigated is actually a system dialog, which should 
+            cause a temporary dialog disappearance.
+            </summary>
+            <remarks>
+            The default implementation just take into account DatePicker and TimePicker pages from WP7 toolkit.
+            </remarks>
+            /// <param name = "uri">The destination page to check</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+              Shows a modal dialog for the specified model.
+            </summary>
+            <param name = "rootModel">The root model.</param>
+            <param name = "context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+              Shows a popup at the current mouse position.
+            </summary>
+            <param name = "rootModel">The root model.</param>
+            <param name = "context">The view context.</param>
+            <param name = "settings">The optional popup settings.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.CreatePopup(System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+              Creates a popup for hosting a popup window.
+            </summary>
+            <param name = "rootModel">The model.</param>
+            <param name = "settings">The optional popup settings.</param>
+            <returns>The popup.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ScreenExtensions">
+            <summary>
+            Hosts extension methods for <see cref="T:Caliburn.Micro.IScreen"/> classes.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryActivate(System.Object)">
+            <summary>
+            Activates the item if it implements <see cref="T:Caliburn.Micro.IActivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialActivatable">The potential activatable.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryDeactivate(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the item if it implements <see cref="T:Caliburn.Micro.IDeactivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialDeactivatable">The potential deactivatable.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem(Caliburn.Micro.IConductor,System.Object)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem``1(Caliburn.Micro.ConductorBase{``0},``0)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ActivateWith(Caliburn.Micro.IActivate,Caliburn.Micro.IActivate)">
+            <summary>
+             Activates a child whenever the specified parent is activated.
+            </summary>
+            <param name="child">The child to activate.</param>
+            <param name="parent">The parent whose activation triggers the child's activation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.DeactivateWith(Caliburn.Micro.IDeactivate,Caliburn.Micro.IDeactivate)">
+            <summary>
+             Deactivates a child whenever the specified parent is deactivated.
+            </summary>
+            <param name="child">The child to deactivate.</param>
+            <param name="parent">The parent whose deactivation triggers the child's deactivation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ConductWith``2(``0,``1)">
+            <summary>
+             Activates and Deactivates a child whenever the specified parent is Activated or Deactivated.
+            </summary>
+            <param name="child">The child to activate/deactivate.</param>
+            <param name="parent">The parent whose activation/deactivation triggers the child's activation/deactivation.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ExtensionMethods">
+            <summary>
+            Generic extension methods used by the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetAttributes``1(System.Reflection.MemberInfo,System.Boolean)">
+            <summary>
+            Gets all the attributes of a particular type.
+            </summary>
+            <typeparam name="T">The type of attributes to get.</typeparam>
+            <param name="member">The member to inspect for attributes.</param>
+            <param name="inherit">Whether or not to search for inherited attributes.</param>
+            <returns>The list of attributes found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.Apply``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
+            <summary>
+            Applies the action to each element in the list.
+            </summary>
+            <typeparam name="T">The enumerable item's type.</typeparam>
+            <param name="enumerable">The elements to enumerate.</param>
+            <param name="action">The action to apply to each item in the list.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetMemberInfo(System.Linq.Expressions.Expression)">
+            <summary>
+            Converts an expression into a <see cref="T:System.Reflection.MemberInfo"/>.
+            </summary>
+            <param name="expression">The expression to convert.</param>
+            <returns>The member info.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.Zip``3(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``1,``2})">
+            <summary>
+            Merges two sequences by using the specified predicate function.
+            </summary>
+            <typeparam name="TFirst">The type of the elements of the first input sequence.</typeparam>
+            <typeparam name="TSecond">The type of the elements of the second input sequence.</typeparam>
+            <typeparam name="TResult">The type of the elements of the result sequence.</typeparam>
+            <param name="first">The first sequence to merge.</param>
+            <param name="second">The second sequence to merge.</param>
+            <param name="resultSelector"> A function that specifies how to merge the elements from the two sequences.</param>
+            <returns>An System.Collections.Generic.IEnumerable&lt;T&gt; that contains merged elements of two input sequences.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ConventionManager">
+            <summary>
+            Used to configure the conventions used by the framework to apply bindings and create actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.BooleanToVisibilityConverter">
+            <summary>
+            Converters <see cref="T:System.Boolean"/> to/from <see cref="T:System.Windows.Visibility"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.IncludeStaticProperties">
+            <summary>
+            Indicates whether or not static properties should be included during convention name matching.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.OverwriteContent">
+            <summary>
+            Indicates whether or not the Content of ContentControls should be overwritten by conventional bindings.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultItemTemplate">
+            <summary>
+            The default DataTemplate used for ItemsControls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultHeaderTemplate">
+            <summary>
+            The default DataTemplate used for Headered controls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.Singularize">
+            <summary>
+            Changes the provided word from a plural form to a singular form.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DerivePotentialSelectionNames">
+            <summary>
+            Derives the SelectedItem property name.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyBindingMode">
+            <summary>
+            Applies the appropriate binding mode to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValidation">
+            <summary>
+            Determines whether or not and what type of validation to enable on the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValueConverter">
+            <summary>
+            Determines whether a value converter is is needed and applies one to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyStringFormat">
+            <summary>
+            Determines whether a custom string format is needed and applies it to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyUpdateSourceTrigger">
+            <summary>
+            Determines whether a custom update source trigger should be applied to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.HasBinding">
+            <summary>
+            Determines whether a particular dependency property already has a binding on the provided element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.SetBinding">
+            <summary>
+            Creates a binding and sets it on the element.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention``1(System.Windows.DependencyProperty,System.String,System.String)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <typeparam name="T">The type of element.</typeparam>
+            <param name="bindableProperty">The default property for binding conventions.</param>
+            <param name="parameterProperty">The default property for action parameters.</param>
+            <param name="eventName">The default event to trigger actions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention(Caliburn.Micro.ElementConvention)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <param name="convention"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetElementConvention(System.Type)">
+            <summary>
+            Gets an element convention for the provided element type.
+            </summary>
+            <param name="elementType">The type of element to locate the convention for.</param>
+            <returns>The convention if found, null otherwise.</returns>
+            <remarks>Searches the class hierarchy for conventions.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyItemTemplate(System.Windows.Controls.ItemsControl,System.Reflection.PropertyInfo)">
+            <summary>
+            Attempts to apply the default item template to the items control.
+            </summary>
+            <param name="itemsControl">The items control.</param>
+            <param name="property">The collection property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ConfigureSelectedItem(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type,System.String)">
+            <summary>
+            Configures the selected item convention.
+            </summary>
+            <param name="selector">The element that has a SelectedItem property.</param>
+            <param name="selectedItemProperty">The SelectedItem property.</param>
+            <param name="viewModelType">The view model type.</param>
+            <param name="path">The property path.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyHeaderTemplate(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type)">
+            <summary>
+            Applies a header template based on <see cref="T:Caliburn.Micro.IHaveDisplayName"/>
+            </summary>
+            <param name="element"></param>
+            <param name="headerTemplateProperty"></param>
+            <param name="viewModelType"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetPropertyCaseInsensitive(System.Type,System.String)">
+            <summary>
+            Gets a property by name, ignoring case and searching all interfaces.
+            </summary>
+            <param name="type">The type to inspect.</param>
+            <param name="propertyName">The property to search for.</param>
+            <returns>The property or null if not found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplySilverlightTriggers(System.Windows.DependencyObject,System.Windows.DependencyProperty,System.Func{System.Windows.FrameworkElement,System.Windows.Data.BindingExpression},System.Reflection.PropertyInfo,System.Windows.Data.Binding)">
+            <summary>
+            Accounts for the lack of UpdateSourceTrigger in silverlight.
+            </summary>
+            <param name="element">The element to wire for change events on.</param>
+            <param name="dependencyProperty">The property that is being bound.</param>
+            <param name="expressionSource">Gets the the binding expression that needs to be updated.</param>
+            <param name="property">The property being bound to if available.</param>
+            <param name="binding">The binding if available.</param>
+        </member>
+        <member name="T:Caliburn.Micro.AssemblySource">
+            <summary>
+            A source of assemblies that are inspectable by the framework.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.AssemblySource.Instance">
+            <summary>
+            The singleton instance of the AssemblySource used by the framework.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Message">
+            <summary>
+            Host's attached properties related to routed UI messaging.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetHandler(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Places a message handler on this element.
+            </summary>
+            <param name="d">The element.</param>
+            <param name="value">The message handler.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetHandler(System.Windows.DependencyObject)">
+            <summary>
+            Gets the message handler for this element.
+            </summary>
+            <param name="d">The element.</param>
+            <returns>The message handler.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Message.AttachProperty">
+            <summary>
+            A property definition representing attached triggers and messages.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetAttach(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Sets the attached triggers and messages.
+            </summary>
+            <param name="d">The element to attach to.</param>
+            <param name="attachText">The parsable attachment text.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetAttach(System.Windows.DependencyObject)">
+            <summary>
+            Gets the attached triggers and messages.
+            </summary>
+            <param name="d">The element that was attached to.</param>
+            <returns>The parsable attachment text.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveParameters">
+            <summary>
+            Indicates that a message is parameterized.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveParameters.Parameters">
+            <summary>
+            Represents the parameters of a message.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ElementConvention">
+            <summary>
+            Represents the conventions for a particular element type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ElementType">
+            <summary>
+            The type of element to which the conventions apply.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.GetBindableProperty">
+            <summary>
+            Gets the default property to be used in binding conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.CreateTrigger">
+            <summary>
+            The default trigger to be used when wiring actions on this element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ParameterProperty">
+            <summary>
+            The default property to be used for parameters of this type in actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ApplyBinding">
+            <summary>
+            Applies custom conventions for elements of this type.
+            </summary>
+            <remarks>Pass the view model type, property path, property instance, framework element and its convention.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.Coroutine">
+            <summary>
+            Manages coroutine execution.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Coroutine.CreateParentEnumerator">
+            <summary>
+            Creates the parent enumerator.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Coroutine.BeginExecute(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult},Caliburn.Micro.ActionExecutionContext,System.EventHandler{Caliburn.Micro.ResultCompletionEventArgs})">
+            <summary>
+            Executes a coroutine.
+            </summary>
+            <param name="coroutine">The coroutine to execute.</param>
+            <param name="context">The context to execute the coroutine within.</param>
+            /// <param name="callback">The completion callback for the coroutine.</param>
+        </member>
+        <member name="E:Caliburn.Micro.Coroutine.Completed">
+            <summary>
+            Called upon completion of a coroutine.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewLocator">
+            <summary>
+              A strategy for determining which view to use for a given model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.ContextSeparator">
+            <summary>
+              Separator used when resolving View names for context instances.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.GetOrCreateViewType">
+            <summary>
+              Retrieves the view from the IoC container or tries to create it if not found.
+            </summary>
+            <remarks>
+              Pass the type of view as a parameter and recieve an instance of the view.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateTypeForModelType">
+            <summary>
+              Locates the view type based on the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view type.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModelType">
+            <summary>
+              Locates the view for the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModel">
+            <summary>
+              Locates the view for the specified model instance.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model instance, display location (or null) and the context (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ViewLocator.InitializeComponent(System.Object)">
+            <summary>
+              When a view does not contain a code-behind file, we need to automatically call InitializeCompoent.
+            </summary>
+            <param name = "element">The element to initialize</param>
+        </member>
+        <member name="T:Caliburn.Micro.MessageBinder">
+            <summary>
+            A service that is capable of properly binding values to a method's parameters and creating instances of <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.SpecialValues">
+            <summary>
+            The special parameter values recognized by the message binder along with their resolvers.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.CustomConverters">
+            <summary>
+            Custom converters used by the framework registered by detination type for which the will be selected.
+            The converter is passed the existing value to convert and a "context" object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.DetermineParameters(Caliburn.Micro.ActionExecutionContext,System.Reflection.ParameterInfo[])">
+            <summary>
+            Determines the parameters that a method should be invoked with.
+            </summary>
+            <param name="context">The action execution context.</param>
+            <param name="requiredParameters">The parameters required to complete the invocation.</param>
+            <returns>The actual parameter values.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.EvaluateParameter">
+            <summary>
+            Transforms the textual parameter into the actual parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.CoerceValue(System.Type,System.Object,System.Object)">
+            <summary>
+            Coerces the provided value to the destination type.
+            </summary>
+            <param name="destinationType">The destination type.</param>
+            <param name="providedValue">The provided value.</param>
+            <param name="context">An optional context value which can be used during conversion.</param>
+            <returns>The coerced value.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.GetDefaultValue(System.Type)">
+            <summary>
+            Gets the default value for a type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>The default value.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ICloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.ICloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.DefaultCloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the class.
+            </summary>
+            <param name="closeConductedItemsWhenConductorCannotClose">Indicates that even if all conducted items are not closable, those that are should be closed. The default is FALSE.</param>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.BooleanToVisibilityConverter">
+            <summary>
+            An <see cref="T:System.Windows.Data.IValueConverter"/> which converts <see cref="T:System.Boolean"/> to <see cref="T:System.Windows.Visibility"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BooleanToVisibilityConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
+            <summary>
+            Converts a boolean value to a <see cref="T:System.Windows.Visibility"/> value.
+            </summary>
+            <param name="value">The value produced by the binding source.</param>
+            <param name="targetType">The type of the binding target property.</param>
+            <param name="parameter">The converter parameter to use.</param>
+            <param name="culture">The culture to use in the converter.</param>
+            <returns>
+            A converted value. If the method returns null, the valid null value is used.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.BooleanToVisibilityConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
+            <summary>
+            Converts a value <see cref="T:System.Windows.Visibility"/> value to a boolean value.
+            </summary>
+            <param name="value">The value that is produced by the binding target.</param>
+            <param name="targetType">The type to convert to.</param>
+            <param name="parameter">The converter parameter to use.</param>
+            <param name="culture">The culture to use in the converter.</param>
+            <returns>
+            A converted value. If the method returns null, the valid null value is used.
+            </returns>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle">
+            <summary>
+              A marker interface for classes that subscribe to messages.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle`1">
+            <summary>
+              Denotes a class which can handle a particular type of message.
+            </summary>
+            <typeparam name = "TMessage">The type of message to handle.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IHandle`1.Handle(`0)">
+            <summary>
+              Handles the message.
+            </summary>
+            <param name = "message">The message.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IEventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Uses the default thread marshaller during publication.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.IEventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.EventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.EventAggregator.DefaultPublicationThreadMarshaller">
+            <summary>
+              The default thread marshaller used for publication;
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.EventAggregator"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Does not marshall the the publication to any special thread by default.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.EventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:System.Action`5">
+            <summary>
+            Encapsulates a method that has five type parameters and does not return a value.
+            </summary>
+            <typeparam name="T1">The first type parameter.</typeparam>
+            <typeparam name="T2">The second type parameter.</typeparam>
+            <typeparam name="T3">The thrid type parameter.</typeparam>
+            <typeparam name="T4">The fourth type parameter.</typeparam>
+            <typeparam name="T5">The fifth type parameter.</typeparam>
+        </member>
+        <member name="T:System.Func`6">
+            <summary>
+            Encapsulates a method that has five type parameters and returns a value.
+            </summary>
+            <typeparam name="T1">The first type parameter.</typeparam>
+            <typeparam name="T2">The second type parameter.</typeparam>
+            <typeparam name="T3">The thrid type parameter.</typeparam>
+            <typeparam name="T4">The fourth type parameter.</typeparam>
+            <typeparam name="T5">The fifth type parameter.</typeparam>
+            <typeparam name="TResult">The return type.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAttachedEventArgs">
+            <summary>
+            The event args for the <see cref="E:Caliburn.Micro.IViewAware.ViewAttached"/> event.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.View">
+            <summary>
+            The view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.Context">
+            <summary>
+            The context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IChild`1">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+            <typeparam name="TParent">The type of parent.</typeparam>
+        </member>
+        <member name="P:Caliburn.Micro.IChild`1.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionMessage">
+            <summary>
+            Used to send a message from the UI to a presentation model class, indicating that a particular Action should be invoked.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.EnforceGuardsDuringInvocation">
+            <summary>
+             Causes the action invocation to "double check" if the action should be invoked by executing the guard immediately before hand.
+            </summary>
+             <remarks>This is disabled by default. If multiple actions are attached to the same element, you may want to enable this so that each individaul action checks its guard regardless of how the UI state appears.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ThrowsExceptions">
+            <summary>
+             Causes the action to throw if it cannot locate the target or the method at invocation time.
+            </summary>
+             <remarks>True by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.MethodNameProperty">
+            <summary>
+            Represents the method name of an action message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ParametersProperty">
+            <summary>
+            Represents the parameters of an action message.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="eventArgs">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.UpdateAvailability">
+            <summary>
+            Forces an update of the UI's Enabled/Disabled state based on the the preconditions associated with the method.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.InvokeAction">
+            <summary>
+            Invokes the action using the specified <see cref="T:Caliburn.Micro.ActionExecutionContext"/>
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ApplyAvailabilityEffect">
+            <summary>
+            Applies an availability effect, such as IsEnabled, to an element.
+            </summary>
+            <remarks>Returns a value indicating whether or not the action is available.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.GetTargetMethod">
+            <summary>
+            Finds the method on the target matching the specified message.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="message">The message.</param>
+            <returns>The matching method, if available.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.SetMethodBinding">
+            <summary>
+            Sets the target, method and view on the context. Uses a bubbling strategy by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.PrepareContext">
+            <summary>
+            Prepares the action execution context for use.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.TryFindGuardMethod(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Try to find a candidate for guard function, having:
+               - a name in the form "CanXXX"
+               - no generic parameters
+               - a bool return type
+               - no parameters or a set of parameters corresponding to the action method
+            </summary>
+            <param name="context">The execution context</param>
+            <returns>A MethodInfo, if found; null otherwise</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.MethodName">
+            <summary>
+            Gets or sets the name of the method to be invoked on the presentation model class.
+            </summary>
+            <value>The name of the method.</value>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.Parameters">
+            <summary>
+            Gets the parameters to pass as part of the method invocation.
+            </summary>
+            <value>The parameters.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ActionMessage.Detaching">
+            <summary>
+            Occurs before the message detaches from the associated object.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer">
+            <summary>
+             Class for managing the list of rules for doing name transformation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.String,System.String)">
+            <summary>
+             Adds a transform using a single replacement value and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValue">The replacement value.</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.Collections.Generic.IEnumerable{System.String},System.String)">
+            <summary>
+             Adds a transform using a list of replacement values and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValueList">The list of replacement values</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String)">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String,System.Func{System.String,System.String})">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <param name = "getReplaceString">A function to do a transform on each item in the ReplaceValueList prior to applying the regular expression transform</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer.Rule">
+            <summary>
+             A rule that describes a name transform.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.GlobalFilterPattern">
+            <summary>
+            Regular expression pattern for global filtering
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacePattern">
+            <summary>
+            Regular expression pattern for replacing text
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacementValues">
+            <summary>
+            The list of replacement values
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationEventArgs">
+            <summary>
+            EventArgs sent during activation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationEventArgs.WasInitialized">
+            <summary>
+            Indicates whether the sender was initialized in addition to being activated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationProcessedEventArgs">
+            <summary>
+            Contains details about the success or failure of an item's activation through an <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Item">
+            <summary>
+            The item whose activation was processed.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Success">
+            <summary>
+            Gets or sets a value indicating whether the activation was a success.
+            </summary>
+            <value><c>true</c> if success; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.DeactivationEventArgs">
+            <summary>
+            EventArgs sent during deactivation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.DeactivationEventArgs.WasClosed">
+            <summary>
+            Indicates whether the sender was closed in addition to being deactivated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionExecutionContext">
+            <summary>
+            The context used during the execution of an Action or its guard.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.CanExecute">
+            <summary>
+            Determines whether the action can execute.
+            </summary>
+            <remarks>Returns true if the action can execute, false otherwise.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.EventArgs">
+            <summary>
+            Any event arguments associated with the action's invocation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.Method">
+            <summary>
+            The actual method info to be invoked.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionExecutionContext.Dispose">
+            <summary>
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Message">
+            <summary>
+            The message being executed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Source">
+            <summary>
+            The source from which the message originates.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Target">
+            <summary>
+            The instance on which the action is invoked.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.View">
+            <summary>
+            The view associated with the target.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Item(System.String)">
+            <summary>
+            Gets or sets additional data needed to invoke the action.
+            </summary>
+            <param name="key">The data key.</param>
+            <returns>Custom data associated with the context.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ActionExecutionContext.Disposing">
+            <summary>
+            Called when the execution context is disposed
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ResultCompletionEventArgs">
+            <summary>
+            The event args for the Completed event of an <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.Error">
+            <summary>
+            Gets or sets the error if one occurred.
+            </summary>
+            <value>The error.</value>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.WasCancelled">
+            <summary>
+            Gets or sets a value indicating whether the result was cancelled.
+            </summary>
+            <value><c>true</c> if cancelled; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.BindingScope">
+            <summary>
+            Provides methods for searching a given scope for named elements.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindingScope.FindName(System.Collections.Generic.IEnumerable{System.Windows.FrameworkElement},System.String)">
+            <summary>
+            Searches through the list of named elements looking for a case-insensitive match.
+            </summary>
+            <param name="elementsToSearch">The named elements to search through.</param>
+            <param name="name">The name to search for.</param>
+            <returns>The named element or null if not found.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.BindingScope.GetNamedElements">
+            <summary>
+            Gets all the <see cref="T:System.Windows.FrameworkElement"/> instances with names in the scope.
+            </summary>
+            <returns>Named <see cref="T:System.Windows.FrameworkElement"/> instances in the provided scope.</returns>
+            <remarks>Pass in a <see cref="T:System.Windows.DependencyObject"/> and receive a list of named <see cref="T:System.Windows.FrameworkElement"/> instances in the same scope.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.TypeDescriptor">
+            <summary>
+            Provides information about the characteristics for a component, such as its attributes, properties, and events. This class cannot be inherited.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.TypeDescriptor.GetConverter(System.Type)">
+            <summary>
+            Returns a type converter for the specified type.
+            </summary>
+            <param name="type">The System.Type of the target component.</param>
+            <returns>A System.ComponentModel.TypeConverter for the specified type.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.SequentialResult">
+            <summary>
+              An implementation of <see cref="T:Caliburn.Micro.IResult"/> that enables sequential execution of multiple results.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IResult">
+            <summary>
+            Allows custom code to execute after the return of a action.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Executes the result using the specified context.
+            </summary>
+            <param name="context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IResult.Completed">
+            <summary>
+            Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.#ctor(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.SequentialResult"/> class.
+            </summary>
+            <param name="enumerator">The enumerator.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+              Executes the result using the specified context.
+            </summary>
+            <param name = "context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.SequentialResult.Completed">
+            <summary>
+              Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bind">
+            <summary>
+            Hosts dependency properties for binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Bind.ModelProperty">
+            <summary>
+            Allows binding on an existing view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelBinder">
+            <summary>
+            Binds a view to a view model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ApplyConventionsByDefault">
+            <summary>
+            Gets or sets a value indicating whether to apply conventions by default.
+            </summary>
+            <value>
+               <c>true</c> if conventions should be applied by default; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ConventionsAppliedProperty">
+            <summary>
+            Indicates whether or not the conventions have already been applied to the view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelBinder.ShouldApplyConventions(System.Windows.FrameworkElement)">
+            <summary>
+            Determines whether a view should have conventions applied to it.
+            </summary>
+            <param name="view">The view to check.</param>
+            <returns>Whether or not conventions should be applied to the view.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindProperties">
+            <summary>
+            Creates data bindings on the view's controls based on the provided properties.
+            </summary>
+            <remarks>Parameters include named Elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindActions">
+            <summary>
+            Attaches instances of <see cref="T:Caliburn.Micro.ActionMessage"/> to the view's controls based on the provided methods.
+            </summary>
+            <remarks>Parameters include the named elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.HandleUnmatchedElements">
+            <summary>
+            Allows the developer to add custom handling of named elements which were not matched by any default conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.Bind">
+             <summary>
+             Binds the specified viewModel to the view.
+             </summary>
+            <remarks>Passes the the view model, view and creation context (or null for default) to use in applying binding.</remarks>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.dll
new file mode 100644 (file)
index 0000000..4b08ad3
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40-wp/System.Windows.Interactivity.xml
new file mode 100644 (file)
index 0000000..c089b93
--- /dev/null
@@ -0,0 +1,964 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>System.Windows.Interactivity</name>
+    </assembly>
+    <members>
+        <member name="T:System.Windows.Interactivity.AttachableCollection`1">
+            <summary>
+            Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.IAttachedObject">
+            <summary>
+            An interface for an object that can be attached to another object.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.IAttachedObject.AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+            <remarks>Represents the object the instance is attached to.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.AttachableCollection`1"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemAdded(`0)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.VerifyAdd(`0)">
+            <exception cref="T:System.InvalidOperationException">Cannot add the instance to a collection more than once.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The IAttachedObject is already attached to a different object.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.AssociatedObject">
+            <summary>
+            The object on which the collection is hosted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior`1">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <typeparam name="T">The type the <see cref="T:System.Windows.Interactivity.Behavior`1"/> can be attached to.</typeparam>
+            <remarks>
+               Behavior is the base class for providing attachable state and commands to an object.
+               The types the Behavior can be attached to can be controlled by the generic parameter.
+               Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers
+               from the AssociatedObject.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <remarks>This is an infrastructure class. Behavior authors should derive from Behavior&lt;T&gt; instead of from this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnAttached">
+            <summary>
+            Called after the behavior is attached to an AssociatedObject.
+            </summary>
+            <remarks>Override this to hook up functionality to the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnDetaching">
+            <summary>
+            Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+            <remarks>Override this to unhook functionality from the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The Behavior is already hosted on a different element.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the Behavior type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedType">
+            <summary>
+            The type to which this behavior can be attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedObject">
+            <summary>
+            Gets the object to which this behavior is attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.Behavior`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.Behavior`1"/> is attached.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.BehaviorCollection">
+            <summary>
+            Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemAdded(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemRemoved(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditor">
+            <summary>
+            Enumerates possible values for reusable property value editors.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Element">
+            <summary>
+            Uses the element picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Storyboard">
+            <summary>
+            Uses the storyboard picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.StateName">
+            <summary>
+            Uses the state picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute">
+            <summary>
+            Associates the given editor type with the property on which the CustomPropertyValueEditor is applied.
+            </summary>
+            <remarks>Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name).</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.#ctor(System.Windows.Interactivity.CustomPropertyValueEditor)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute"/> class.
+            </summary>
+            <param name="customPropertyValueEditor">The custom property value editor.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.CustomPropertyValueEditor">
+            <summary>
+            Gets or sets the custom property value editor.
+            </summary>
+            <value>The custom property value editor.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.DefaultTriggerAttribute">
+            <summary>
+            Provides design tools information about what <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate for a given action or command.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">A single argument for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+            <remarks>This constructor is useful if the specifed <see cref="T:System.Windows.Interactivity.TriggerBase"/> has a single argument. The
+            resulting code will be CLS compliant.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">The constructor arguments for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.Instantiate">
+            <summary>
+            Instantiates this instance.
+            </summary>
+            <returns>The <see cref="T:System.Windows.Interactivity.TriggerBase"/> specified by the DefaultTriggerAttribute.</returns>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TargetType">
+            <summary>
+            Gets the type that this DefaultTriggerAttribute applies to.
+            </summary>
+            <value>The type this DefaultTriggerAttribute applies to.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TriggerType">
+            <summary>
+            Gets the type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.
+            </summary>
+            <value>The type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.Parameters">
+            <summary>
+            Gets the parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.
+            </summary>
+            <value>The parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTrigger">
+            <summary>
+            A trigger that listens for a specified event on its source and fires when that event is fired.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase`1">
+            <summary>
+            Represents a trigger that can listen to an element other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type that this trigger can be associated with.</typeparam>
+            <remarks>
+               EventTriggerBase extends TriggerBase to add knowledge of another element than the one it is attached to. 
+               This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a 
+               change in another element somewhere else. Override OnSourceChanged to hook or unhook handlers on the source 
+               element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be 
+               constrained by the generic type parameter. If you need control over the type of the 
+               AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase">
+            <summary>
+            Represents a trigger that can listen to an element other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from EventTriggerBase&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase">
+            <summary>
+            Represents an object that can invoke Actions conditionally.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from Trigger&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.InvokeActions(System.Object)">
+            <summary>
+            Invoke all Actions associated with this trigger.
+            </summary>
+            <remarks>Derived classes should call this to fire the trigger.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same Trigger on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the Trigger type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.Actions">
+            <summary>
+            Gets the actions associated with this trigger.
+            </summary>
+            <value>The actions associated with this trigger.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.GetEventName">
+            <summary>
+            Specifies the name of the Event this EventTriggerBase is listening for.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnEvent(System.EventArgs)">
+            <summary>
+            Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger.
+            </summary>
+            <param name="eventArgs">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
+            <remarks>Override this to provide more granular control over when actions associated with this trigger will be invoked.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnSourceChangedImpl(System.Windows.DependencyObject,System.Windows.DependencyObject)">
+            <summary>
+            Called when the source changes.
+            </summary>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+            <remarks>This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.RegisterEvent(System.Object,System.String)">
+            <exception cref="T:System.ArgumentException">Could not find eventName on the Target.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceTypeConstraint">
+            <summary>
+            Gets the source type constraint.
+            </summary>
+            <value>The source type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceName">
+            <summary>
+            Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is unset or cannot be resolved, the AssociatedObject will be used.  This is a dependency property.
+            </summary>
+            <value>The name of the source element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is unset or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The element pointed to by <c cref="P:System.Windows.Interactivity.EventTriggerBase.Source"/> does not satisify the type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.OnSourceChanged(`0,`0)">
+            <summary>
+            Called when the source property changes.
+            </summary>
+            <remarks>Override this to hook functionality to and unhook functionality from the specified Source, rather than the AssociatedObject.</remarks>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase`1.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is not set or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+            <param name="eventName">Name of the event.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTrigger.EventName">
+            <summary>
+            Gets or sets the name of the event to listen for. This is a dependency property.
+            </summary>
+            <value>The name of the event.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Interaction">
+            <summary>
+            Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.TriggersProperty">
+            <summary>
+            This property is used as the internal backing store for the public Triggers attached property.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.BehaviorsProperty">
+            <summary>
+            This property is used as the internal backing store for the public Behaviors attached property.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetTriggers(System.Windows.DependencyObject)">
+            <summary>
+            Gets the TriggerCollection containing the triggers associated with the specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the triggers.</param>
+            <returns>A TriggerCollection containing the triggers associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetBehaviors(System.Windows.DependencyObject)">
+            <summary>
+            Gets the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> associated with a specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/>.</param>
+            <returns>A <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> containing the behaviors associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnBehaviorsChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same BehaviorCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnTriggersChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.IsElementLoaded(System.Windows.FrameworkElement)">
+            <summary>
+            A helper function to take the place of FrameworkElement.IsLoaded, as Silverlight doesn't have a property like that.
+            </summary>
+            <param name="element">The element of interest.</param>
+            <returns>True if the element has been loaded; otherwise, false</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.InvokeCommandAction">
+            <summary>
+            Executes a specified Action on the host Behavior when invoked.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction`1">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <typeparam name="T">The type to which this action can be attached.</typeparam>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.CallInvoke(System.Object)">
+            <summary>
+            Attempts to invoke the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the Action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the Action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerAction on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the TriggerAction type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsEnabled">
+            <summary>
+            Gets or sets a value indicating whether this action will run when invoked. This is a dependency property.
+            </summary>
+            <value>
+               <c>true</c> if this action will be run when invoked; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObject">
+            <summary>
+            Gets the object to which this Action is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsHosted">
+            <summary>
+            Gets or sets a value indicating whether this instance is attached.
+            </summary>
+            <value><c>true</c> if this instance is attached; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.InvokeCommandAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the Action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.InvokeCommandAction.OnAttached">
+            <summary>
+            Called after the collection is attached to an AssociatedObject.
+            </summary>
+            <exception cref="T:System.InvalidOperationException">InvokeActionCommand must be hosted on a Behavior.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandName">
+            <summary>
+            Gets or sets the name of the command this action should invoke.
+            </summary>
+            <value>The name of the command this action should invoke.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandParameter">
+            <summary>
+            Gets or sets the command parameter.
+            </summary>
+            <value>The command parameter.</value>
+            <remarks>This is the value passed to ICommand.CanExecute and ICommand.Execute.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolvedEventArgs">
+            <summary>
+            Provides data about which objects were affected when resolving a name change.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolver">
+            <summary>
+            Helper class to handle the logic of resolving a TargetName into a Target element
+            based on the context provided by a host element.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.NameResolver.UpdateObjectFromName(System.Windows.DependencyObject)">
+            <summary>
+            Attempts to update the resolved object from the name within the context of the namescope reference element.
+            </summary>
+            <param name="oldObject">The old resolved object.</param>
+            <remarks>
+            Resets the existing target and attempts to resolve the current TargetName from the
+            context of the current Host. If it cannot resolve from the context of Host, it will
+            continue up the visual tree until it resolves. If it has not resolved it when it reaches
+            the root, it will set the Target to null and write a warning message to Debug output.
+            </remarks>
+        </member>
+        <member name="E:System.Windows.Interactivity.NameResolver.ResolvedElementChanged">
+            <summary>
+            Occurs when the resolved element has changed.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Name">
+            <summary>
+            Gets or sets the name of the element to attempt to resolve.
+            </summary>
+            <value>The name to attempt to resolve.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Object">
+            <summary>
+            The resolved object. Will return the reference element is TargetName is null or empty, or if a resolve has not been attempted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.NameScopeReferenceElement">
+            <summary>
+            Gets or sets the reference element from which to perform the name resolution.
+            </summary>
+            <value>The reference element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.PendingReferenceElementLoad">
+            <summary>
+            Gets or sets a value indicating whether the reference element load is pending.
+            </summary>
+            <value>
+               <c>true</c> if [pending reference element load]; otherwise, <c>false</c>.
+            </value>
+            <remarks>
+            If the Host has not been loaded, the name will not be resolved.
+            In that case, delay the resolution and track that fact with this property.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction`1">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type constraint on the target.</typeparam>
+            <remarks>
+               TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. 
+               This allows a user to invoke the Action on an element other than the one it is attached to in response to a 
+               Trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching 
+               for the associated element. The type of the Target element can be constrained by the generic type parameter. If 
+               you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TargetedTriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnTargetChangedImpl(System.Windows.DependencyObject,System.Windows.DependencyObject)">
+            <summary>
+            Called when the target changes.
+            </summary>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+            <remarks>This function should be overriden in derived classes to hook and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetName">
+            <summary>
+            Gets or sets the name of the target. If TargetName is unset or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The name of the target.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.Target">
+            <summary>
+            Gets the target object. If TargetName is unset or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The Target element does not satisfy the type constraint.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetTypeConstraint">
+            <summary>
+            Gets the target type constraint.
+            </summary>
+            <value>The target type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TargetedTriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.OnTargetChanged(`0,`0)">
+            <summary>
+            Called when the target property changes.
+            </summary>
+            <remarks>Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject.</remarks>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction`1.Target">
+            <summary>
+            Gets the target object. If TargetName is unset or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerActionCollection">
+            <summary>
+            Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerActionCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemAdded(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemRemoved(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase`1">
+            <summary>
+            Represents an object that can invoke Actions conditionally.
+            </summary>
+            <typeparam name="T">The type to which this trigger can be attached.</typeparam>
+            <remarks>
+               TriggerBase is the base class for controlling Actions. Override OnAttached() and 
+               OnDetaching() to hook and unhook handlers on the AssociatedObject. You may 
+               constrain the types that a derived TriggerBase may be attached to by specifying 
+               the generic parameter. Call InvokeActions() to fire all Actions associated with 
+               this TriggerBase.
+            </remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerCollection">
+            <summary>
+             Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+             </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemAdded(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemRemoved(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.TypeConstraintAttribute">
+            <summary>
+            Specify type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TypeConstraintAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TypeConstraintAttribute"/> class.
+            </summary>
+            <param name="constraint">The constraint type.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TypeConstraintAttribute.Constraint">
+            <summary>
+            Gets the constraint type.
+            </summary>
+            <value>The constraint type.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.ExceptionStringTable">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostBehaviorCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same BehaviorCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostBehaviorMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerActionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CommandDoesNotExistOnBehaviorWarningMessage">
+            <summary>
+              Looks up a localized string similar to The command &quot;{0}&quot; does not exist or is not publicly exposed on {1}..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.DefaultTriggerAttributeInvalidTriggerTypeSpecifiedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to &quot;{0}&quot; is not a valid type for the TriggerType parameter. Make sure &quot;{0}&quot; derives from TriggerBase..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.DuplicateItemInCollectionExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot add the same instance of &quot;{0}&quot; to a &quot;{1}&quot; more than once..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.EventTriggerCannotFindEventNameExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot find an event named &quot;{0}&quot; on type &quot;{1}.&quot;.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.InvokeActionCommandMustBeHostedOnBehaviorExceptionMessage">
+            <summary>
+              Looks up a localized string similar to InvokeCommandAction must be attached to a Behavior. This can be done by adding it to the Actions collection of a Trigger in the Triggers collection of a Behavior object..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.RetargetedTypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An object of type &quot;{0}&quot; cannot have a {3} property of type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can have only a {3} property of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.TypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot attach type &quot;{0}&quot; to type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can only be attached to objects of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.UnableToResolveTargetNameWarningMessage">
+            <summary>
+              Looks up a localized string similar to Unable to resolve TargetName &quot;{0}.&quot;.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.dll
new file mode 100644 (file)
index 0000000..c8339ad
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/Caliburn.Micro.xml
new file mode 100644 (file)
index 0000000..c5aeab9
--- /dev/null
@@ -0,0 +1,2439 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Caliburn.Micro</name>
+    </assembly>
+    <members>
+        <member name="T:Caliburn.Micro.View">
+            <summary>
+            Hosts attached properties related to view models.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.DefaultContext">
+            <summary>
+            The default view context.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsLoadedProperty">
+            <summary>
+            A dependency property which allows the framework to track whether a certain element has already been loaded in certain scenarios.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsScopeRootProperty">
+            <summary>
+            A dependency property which marks an element as a name scope root.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ApplyConventionsProperty">
+            <summary>
+            A dependency property which allows the override of convention application behavior.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ContextProperty">
+            <summary>
+            A dependency property for assigning a context to a particular portion of the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.ModelProperty">
+            <summary>
+            A dependency property for attaching a model to the UI.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.View.IsGeneratedProperty">
+            <summary>
+            Used by the framework to indicate that this element was generated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.View.ExecuteOnLoad(System.Windows.FrameworkElement,System.Windows.RoutedEventHandler)">
+            <summary>
+            Executes the handler immediately if the element is loaded, otherwise wires it to the Loaded event.
+            </summary>
+            <param name="element">The element.</param>
+            <param name="handler">The handler.</param>
+            <returns>true if the handler was executed immediately; false otherwise</returns>
+        </member>
+        <member name="F:Caliburn.Micro.View.GetFirstNonGeneratedView">
+            <summary>
+            Used to retrieve the root, non-framework-created view.
+            </summary>
+            <param name="view">The view to search.</param>
+            <returns>The root element that was not created by the framework.</returns>
+            <remarks>In certain instances the services create UI elements.
+            For example, if you ask the window manager to show a UserControl as a dialog, it creates a window to host the UserControl in.
+            The WindowManager marks that element as a framework-created element so that it can determine what it created vs. what was intended by the developer.
+            Calling GetFirstNonGeneratedView allows the framework to discover what the original element was. 
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetApplyConventions(System.Windows.DependencyObject)">
+            <summary>
+            Gets the convention application behavior.
+            </summary>
+            <param name="d">The element the property is attached to.</param>
+            <returns>Whether or not to apply conventions.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetApplyConventions(System.Windows.DependencyObject,System.Nullable{System.Boolean})">
+            <summary>
+            Sets the convention application behavior.
+            </summary>
+            <param name="d">The element to attach the property to.</param>
+            <param name="value">Whether or not to apply conventions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model.
+            </summary>
+            <param name="d">The element to attach the model to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model.
+            </summary>
+            <param name="d">The element the model is attached to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.GetContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the context.
+            </summary>
+            <param name="d">The element the context is attached to.</param>
+            <returns>The context.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.View.SetContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the context.
+            </summary>
+            <param name="d">The element to attach the context to.</param>
+            <param name="value">The context.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Parser">
+            <summary>
+            Parses text into a fully functional set of <see cref="T:System.Windows.Interactivity.TriggerBase"/> instances with <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.Parse(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Parses the specified message text.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="text">The message text.</param>
+            <returns>The triggers parsed from the text.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateTrigger">
+            <summary>
+            The function used to generate a trigger.
+            </summary>
+            <remarks>The parameters passed to the method are the the target of the trigger and string representing the trigger.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.CreateMessage(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/> by parsing out the textual dsl.
+            </summary>
+            <param name="target">The target of the message.</param>
+            <param name="messageText">The textual message dsl.</param>
+            <returns>The created message.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.InterpretMessageText">
+            <summary>
+            Function used to parse a string identified as a message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parser.CreateParameter">
+            <summary>
+            Function used to parse a string identified as a message parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parser.BindParameter(System.Windows.FrameworkElement,Caliburn.Micro.Parameter,System.String,System.String,System.Windows.Data.BindingMode)">
+            <summary>
+            Creates a binding on a <see cref="T:Caliburn.Micro.Parameter"/>.
+            </summary>
+            <param name="target">The target to which the message is applied.</param>
+            <param name="parameter">The parameter object.</param>
+            <param name="elementName">The name of the element to bind to.</param>
+            <param name="path">The path of the element to bind to.</param>
+            <param name="bindingMode">The binding mode to use.</param>
+        </member>
+        <member name="T:Caliburn.Micro.Parameter">
+            <summary>
+            Represents a parameter of an <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Parameter.ValueProperty">
+            <summary>
+            A dependency property representing the parameter's value.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Parameter.MakeAwareOf(Caliburn.Micro.ActionMessage)">
+            <summary>
+            Makes the parameter aware of the <see cref="T:Caliburn.Micro.ActionMessage"/> that it's attached to.
+            </summary>
+            <param name="owner">The action message.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Parameter.Value">
+            <summary>
+            Gets or sets the value of the parameter.
+            </summary>
+            <value>The value.</value>
+        </member>
+        <member name="T:Caliburn.Micro.Execute">
+            <summary>
+              Enables easy marshalling of code to the UI thread.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.InitializeWithDispatcher">
+            <summary>
+              Initializes the framework using the current dispatcher.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.ResetWithoutDispatcher">
+            <summary>
+              Resets the executor to use a non-dispatcher-based action executor.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Execute.OnUIThread(System.Action)">
+            <summary>
+              Executes the action on the UI thread.
+            </summary>
+            <param name = "action">The action to execute.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Execute.InDesignMode">
+            <summary>
+              Indicates whether or not the framework is in design-time mode.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.INotifyPropertyChangedEx">
+            <summary>
+              Extends <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> such that the change event can be raised by external parties.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.INotifyPropertyChangedEx.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.INotifyPropertyChangedEx.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.PropertyChangedBase">
+            <summary>
+              A base class that implements the infrastructure for property change notification and automatically performs UI thread marshalling.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.#ctor">
+            <summary>
+              Creates an instance of <see cref="T:Caliburn.Micro.PropertyChangedBase"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.NotifyOfPropertyChange``1(System.Linq.Expressions.Expression{System.Func{``0}})">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <typeparam name = "TProperty">The type of the property.</typeparam>
+            <param name = "property">The property expression.</param>
+        </member>
+        <member name="M:Caliburn.Micro.PropertyChangedBase.RaisePropertyChangedEventImmediately(System.String)">
+            <summary>
+              Raises the property changed event immediately.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="E:Caliburn.Micro.PropertyChangedBase.PropertyChanged">
+            <summary>
+              Occurs when a property value changes.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.PropertyChangedBase.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IObservableCollection`1">
+            <summary>
+              Represents a collection that is observable.
+            </summary>
+            <typeparam name = "T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IObservableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="T:Caliburn.Micro.BindableCollection`1">
+            <summary>
+            A base collection class that supports automatic UI thread marshalling.
+            </summary>
+            <typeparam name="T">The type of elements contained in the collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.BindableCollection`1"/> class.
+            </summary>
+            <param name="collection">The collection from which the elements are copied.</param>
+            <exception cref="T:System.ArgumentNullException">
+              The <paramref name="collection"/> parameter cannot be null.
+            </exception>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.NotifyOfPropertyChange(System.String)">
+            <summary>
+              Notifies subscribers of the property change.
+            </summary>
+            <param name = "propertyName">Name of the property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.Refresh">
+            <summary>
+              Raises a change notification indicating that all bindings should be refreshed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)">
+            <summary>
+              Inserts the item to the specified position.
+            </summary>
+            <param name = "index">The index to insert at.</param>
+            <param name = "item">The item to be inserted.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.InsertItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.InsertItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)">
+            <summary>
+              Sets the item at the specified position.
+            </summary>
+            <param name = "index">The index to set the item at.</param>
+            <param name = "item">The item to set.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.SetItemBase(System.Int32,`0)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.SetItem(System.Int32,`0)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <param name="item">The item.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)">
+            <summary>
+              Removes the item at the specified position.
+            </summary>
+            <param name = "index">The position used to identify the item to remove.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveItemBase(System.Int32)">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.RemoveItem(System.Int32)"/> function.
+            </summary>
+            <param name="index">The index.</param>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItems">
+            <summary>
+              Clears the items contained by the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.ClearItemsBase">
+            <summary>
+              Exposes the base implementation of the <see cref="M:Caliburn.Micro.BindableCollection`1.ClearItems"/> function.
+            </summary>
+            <remarks>
+              Used to avoid compiler warning regarding unverifiable code.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+            <summary>
+              Raises the <see cref = "E:System.Collections.ObjectModel.ObservableCollection`1.CollectionChanged" /> event with the provided arguments.
+            </summary>
+            <param name = "e">Arguments of the event being raised.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs)">
+            <summary>
+              Raises the PropertyChanged event with the provided arguments.
+            </summary>
+            <param name = "e">The event data to report in the event.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Adds the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="M:Caliburn.Micro.BindableCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Removes the range.
+            </summary>
+            <param name = "items">The items.</param>
+        </member>
+        <member name="P:Caliburn.Micro.BindableCollection`1.IsNotifying">
+            <summary>
+              Enables/Disables property change notification.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ILog">
+            <summary>
+            A logger.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Info(System.String,System.Object[])">
+            <summary>
+            Logs the message as info.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Warn(System.String,System.Object[])">
+            <summary>
+            Logs the message as a warning.
+            </summary>
+            <param name="format">A formatted message.</param>
+            <param name="args">Parameters to be injected into the formatted message.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ILog.Error(System.Exception)">
+            <summary>
+            Logs the exception.
+            </summary>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="T:Caliburn.Micro.LogManager">
+            <summary>
+            Used to manage logging.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.LogManager.GetLog">
+            <summary>
+            Creates an <see cref="T:Caliburn.Micro.ILog"/> for the provided type.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Screen">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IScreen"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAware">
+            <summary>
+              A base implementation of <see cref="T:Caliburn.Micro.IViewAware"/> which is capable of caching views by context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IViewAware">
+            <summary>
+            Denotes a class which is aware of its view(s).
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.AttachView(System.Object,System.Object)">
+            <summary>
+            Attaches a view to this instance.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IViewAware.GetView(System.Object)">
+            <summary>
+            Gets a view previously attached to this instance.
+            </summary>
+            <param name="context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.IViewAware.ViewAttached">
+            <summary>
+            Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.CacheViewsByDefault">
+            <summary>
+            Indicates whether or not implementors of <see cref="T:Caliburn.Micro.IViewAware"/> should cache their views by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAware.Views">
+            <summary>
+              The view chache for this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.#ctor(System.Boolean)">
+            <summary>
+             Creates an instance of <see cref="T:Caliburn.Micro.ViewAware"/>.
+            </summary>
+            <param name="cacheViews">Indicates whether or not this instance maintains a view cache.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewAttached(System.Object,System.Object)">
+            <summary>
+            Called when a view is attached.
+            </summary>
+            <param name="view">The view.</param>
+            <param name="context">The context in which the view appears.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.OnViewLoaded(System.Object)">
+            <summary>
+              Called when an attached view's Loaded event fires.
+            </summary>
+            <param name = "view"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ViewAware.GetView(System.Object)">
+            <summary>
+              Gets a view previously attached to this instance.
+            </summary>
+            <param name = "context">The context denoting which view to retrieve.</param>
+            <returns>The view.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ViewAware.ViewAttached">
+            <summary>
+              Raised when a view is attached.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ViewAware.CacheViews">
+            <summary>
+              Indicates whether or not this instance maintains a view cache.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IScreen">
+            <summary>
+            Denotes an instance which implements <see cref="T:Caliburn.Micro.IHaveDisplayName"/>, <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/> and <see cref="T:Caliburn.Micro.INotifyPropertyChangedEx"/>
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveDisplayName">
+            <summary>
+            Denotes an instance which has a display name.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveDisplayName.DisplayName">
+            <summary>
+            Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IActivate">
+            <summary>
+            Denotes an instance which requires activation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IActivate.Activate">
+            <summary>
+            Activates this instance.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IActivate.IsActive">
+            <summary>
+             Indicates whether or not this instance is active.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IActivate.Activated">
+            <summary>
+            Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IDeactivate">
+            <summary>
+            Denotes an instance which requires deactivation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IDeactivate.Deactivate(System.Boolean)">
+            <summary>
+            Deactivates this instance.
+            </summary>
+            <param name="close">Indicates whether or not this instance is being closed.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.AttemptingDeactivation">
+            <summary>
+            Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.IDeactivate.Deactivated">
+            <summary>
+            Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IGuardClose">
+            <summary>
+            Denotes an instance which may prevent closing.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IClose">
+            <summary>
+            Denotes an object that can be closed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IClose.TryClose">
+            <summary>
+            Tries to close this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IGuardClose.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementer calls this action with the result of the close check.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IChild">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IChild.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.#ctor">
+            <summary>
+              Creates an instance of the screen.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnInitialize">
+            <summary>
+              Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnActivate">
+            <summary>
+              Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.OnDeactivate(System.Boolean)">
+            <summary>
+              Called when deactivating.
+            </summary>
+            <param name = "close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.CanClose(System.Action{System.Boolean})">
+            <summary>
+              Called to check whether or not this instance can close.
+            </summary>
+            <param name = "callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Screen.TryClose">
+            <summary>
+              Tries to close this instance by asking its Parent to initiate shutdown or by asking its corresponding view to close.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.Parent">
+            <summary>
+              Gets or Sets the Parent <see cref="T:Caliburn.Micro.IConductor"/>
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.DisplayName">
+            <summary>
+              Gets or Sets the Display Name
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsActive">
+            <summary>
+              Indicates whether or not this instance is currently active.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.Screen.IsInitialized">
+            <summary>
+              Indicates whether or not this instance is currently initialized.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Activated">
+            <summary>
+              Raised after activation occurs.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.AttemptingDeactivation">
+            <summary>
+              Raised before deactivation.
+            </summary>
+        </member>
+        <member name="E:Caliburn.Micro.Screen.Deactivated">
+            <summary>
+              Raised after deactivation.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to and activates only one item at a time.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBaseWithActiveItem`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/> that maintain an active item.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.ConductorBase`1">
+            <summary>
+            A base class for various implementations of <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+            <typeparam name="T">The type that is being conducted.</typeparam>
+        </member>
+        <member name="T:Caliburn.Micro.IConductor">
+            <summary>
+            Denotes an instance which conducts other objects by managing an ActiveItem and maintaining a strict lifecycle.
+            </summary>
+            <remarks>Conducted instances can optin to the lifecycle by impelenting any of the follosing <see cref="T:Caliburn.Micro.IActivate"/>, <see cref="T:Caliburn.Micro.IDeactivate"/>, <see cref="T:Caliburn.Micro.IGuardClose"/>.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IParent">
+            <summary>
+              Interface used to define an object associated to a collection of children.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IParent.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.ActivateItem(System.Object)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IConductor.DeactivateItem(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IConductor.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IParent`1">
+            <summary>
+            Interface used to define a specialized parent.
+            </summary>
+            <typeparam name="T">The type of children.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IParent`1.GetChildren">
+            <summary>
+              Gets the children.
+            </summary>
+            <returns>
+              The collection of children.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.OnActivationProcessed(`0,System.Boolean)">
+            <summary>
+            Called by a subclass when an activation needs processing.
+            </summary>
+            <param name="item">The item on which activation was attempted.</param>
+            <param name="success">if set to <c>true</c> activation was successful.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBase`1.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBase`1.CloseStrategy">
+            <summary>
+            Gets or sets the close strategy.
+            </summary>
+            <value>The close strategy.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ConductorBase`1.ActivationProcessed">
+            <summary>
+            Occurs when an activation request is processed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IConductActiveItem">
+            <summary>
+            An <see cref="T:Caliburn.Micro.IConductor"/> that also implements <see cref="T:Caliburn.Micro.IHaveActiveItem"/>.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveActiveItem">
+            <summary>
+            Denotes an instance which maintains an active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveActiveItem.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConductorBaseWithActiveItem`1.ChangeActiveItem(`0,System.Boolean)">
+            <summary>
+            Changes the active item.
+            </summary>
+            <param name="newItem">The new item to activate.</param>
+            <param name="closePrevious">Indicates whether or not to close the previous active item.</param>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ConductorBaseWithActiveItem`1.Caliburn#Micro#IHaveActiveItem#ActiveItem">
+            <summary>
+            The currently active item.
+            </summary>
+            <value></value>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.AllActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on to many items wich are all activated.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor(System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+            <param name="openPublicItems">if set to <c>true</c> opens public items that are properties of this class.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.AllActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.OnInitialize">
+            <summary>
+            Called when initializing.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.AllActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.AllActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Conductor`1.Collection.OneActive">
+            <summary>
+            An implementation of <see cref="T:Caliburn.Micro.IConductor"/> that holds on many items but only activates on at a time.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Caliburn.Micro.Conductor`1.Collection.OneActive"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.GetChildren">
+            <summary>
+            Gets the children.
+            </summary>
+            <returns>The collection of children.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.ActivateItem(`0)">
+            <summary>
+            Activates the specified item.
+            </summary>
+            <param name="item">The item to activate.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DeactivateItem(`0,System.Boolean)">
+            <summary>
+            Deactivates the specified item.
+            </summary>
+            <param name="item">The item to close.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.DetermineNextItemToActivate(System.Collections.Generic.IList{`0},System.Int32)">
+            <summary>
+            Determines the next item to activate based on the last active index.
+            </summary>
+            <param name="list">The list of possible active items.</param>
+            <param name="lastIndex">The index of the last active item.</param>
+            <returns>The next item to activate.</returns>
+            <remarks>Called after an active item is closed.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.CanClose(System.Action{System.Boolean})">
+            <summary>
+            Called to check whether or not this instance can close.
+            </summary>
+            <param name="callback">The implementor calls this action with the result of the close check.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnActivate">
+            <summary>
+            Called when activating.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.OnDeactivate(System.Boolean)">
+            <summary>
+            Called when deactivating.
+            </summary>
+            <param name="close">Inidicates whether this instance will be closed.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Conductor`1.Collection.OneActive.EnsureItem(`0)">
+            <summary>
+            Ensures that an item is ready to be activated.
+            </summary>
+            <param name="newItem"></param>
+            <returns>The item to be activated.</returns>
+        </member>
+        <member name="P:Caliburn.Micro.Conductor`1.Collection.OneActive.Items">
+            <summary>
+            Gets the items that are currently being conducted.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelLocator">
+            <summary>
+              A strategy for determining which view model to use for a given view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelLocator.MakeInterface(System.String)">
+            <summary>
+              Makes a type name into an interface name.
+            </summary>
+            <param name = "typeName">The part.</param>
+            <returns></returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateTypeForViewType">
+            <summary>
+              Determines the view model type based on the specified view type.
+            </summary>
+            <returns>The view model type.</returns>
+            <remarks>
+              Pass the view type and receive a view model type. Pass true for the second parameter to search for interfaces.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForViewType">
+            <summary>
+              Locates the view model for the specified view type.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view type as a parameter and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelLocator.LocateForView">
+            <summary>
+              Locates the view model for the specified view instance.
+            </summary>
+            <returns>The view model.</returns>
+            <remarks>
+              Pass the view instance as a parameters and receive a view model instance.
+            </remarks>
+        </member>
+        <member name="T:Caliburn.Micro.IoC">
+            <summary>
+            Used by the framework to pull instances from an IoC container and to inject dependencies into certain existing classes.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetInstance">
+            <summary>
+            Gets an instance by type and key.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.GetAllInstances">
+            <summary>
+            Gets all instances of a particular type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.IoC.BuildUp">
+            <summary>
+            Passes an existing instance to the IoC container to enable dependencies to be injected.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1">
+            <summary>
+            Gets an instance by type.
+            </summary>
+            <typeparam name="T">The type to resolve from the container.</typeparam>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.IoC.Get``1(System.String)">
+            <summary>
+            Gets an instance from the container using type and key.
+            </summary>
+            <typeparam name="T">The type to resolve.</typeparam>
+            <param name="key">The key to look up.</param>
+            <returns>The resolved instance.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Action">
+            <summary>
+            A host for action related attached properties.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element will be set to this instance.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Action.TargetWithoutContextProperty">
+            <summary>
+            A property definition representing the target of an <see cref="T:Caliburn.Micro.ActionMessage"/>.  
+            The DataContext of the element is not set to this instance.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTarget(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTarget(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.SetTargetWithoutContext(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the target of the <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to attach the target to.</param>
+            <param name="target">The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.</param>
+            <remarks>The DataContext will not be set.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.Action.GetTargetWithoutContext(System.Windows.DependencyObject)">
+            <summary>
+            Gets the target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+            <param name="d">The element to which the target is attached.</param>
+            <returns>The target for instances of <see cref="T:Caliburn.Micro.ActionMessage"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.HasTargetSet(System.Windows.DependencyObject)">
+            <summary>
+             Checks if the <see cref="T:Caliburn.Micro.ActionMessage"/>-Target was set.
+            </summary>
+            <param name="element">DependencyObject to check</param>
+            <returns>True if Target or TargetWithoutContext was set on <paramref name="element"/></returns>
+        </member>
+        <member name="M:Caliburn.Micro.Action.Invoke(System.Object,System.String,System.Windows.DependencyObject,System.Windows.FrameworkElement,System.Object,System.Object[])">
+            <summary>
+             Uses the action pipeline to invoke the method.
+            </summary>
+            <param name="target">The object instance to invoke the method on.</param>
+            <param name="methodName">The name of the method to invoke.</param>
+            <param name="view">The view.</param>
+            <param name="source">The source of the invocation.</param>
+            <param name="eventArgs">The event args.</param>
+            <param name="parameters">The method parameters.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ScreenExtensions">
+            <summary>
+            Hosts extension methods for <see cref="T:Caliburn.Micro.IScreen"/> classes.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryActivate(System.Object)">
+            <summary>
+            Activates the item if it implements <see cref="T:Caliburn.Micro.IActivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialActivatable">The potential activatable.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.TryDeactivate(System.Object,System.Boolean)">
+            <summary>
+            Deactivates the item if it implements <see cref="T:Caliburn.Micro.IDeactivate"/>, otherwise does nothing.
+            </summary>
+            <param name="potentialDeactivatable">The potential deactivatable.</param>
+            <param name="close">Indicates whether or not to close the item after deactivating it.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem(Caliburn.Micro.IConductor,System.Object)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.CloseItem``1(Caliburn.Micro.ConductorBase{``0},``0)">
+            <summary>
+            Closes the specified item.
+            </summary>
+            <param name="conductor">The conductor.</param>
+            <param name="item">The item to close.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ActivateWith(Caliburn.Micro.IActivate,Caliburn.Micro.IActivate)">
+            <summary>
+             Activates a child whenever the specified parent is activated.
+            </summary>
+            <param name="child">The child to activate.</param>
+            <param name="parent">The parent whose activation triggers the child's activation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.DeactivateWith(Caliburn.Micro.IDeactivate,Caliburn.Micro.IDeactivate)">
+            <summary>
+             Deactivates a child whenever the specified parent is deactivated.
+            </summary>
+            <param name="child">The child to deactivate.</param>
+            <param name="parent">The parent whose deactivation triggers the child's deactivation.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ScreenExtensions.ConductWith``2(``0,``1)">
+            <summary>
+             Activates and Deactivates a child whenever the specified parent is Activated or Deactivated.
+            </summary>
+            <param name="child">The child to activate/deactivate.</param>
+            <param name="parent">The parent whose activation/deactivation triggers the child's activation/deactivation.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ExtensionMethods">
+            <summary>
+            Generic extension methods used by the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetAttributes``1(System.Reflection.MemberInfo,System.Boolean)">
+            <summary>
+            Gets all the attributes of a particular type.
+            </summary>
+            <typeparam name="T">The type of attributes to get.</typeparam>
+            <param name="member">The member to inspect for attributes.</param>
+            <param name="inherit">Whether or not to search for inherited attributes.</param>
+            <returns>The list of attributes found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.Apply``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
+            <summary>
+            Applies the action to each element in the list.
+            </summary>
+            <typeparam name="T">The enumerable item's type.</typeparam>
+            <param name="enumerable">The elements to enumerate.</param>
+            <param name="action">The action to apply to each item in the list.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ExtensionMethods.GetMemberInfo(System.Linq.Expressions.Expression)">
+            <summary>
+            Converts an expression into a <see cref="T:System.Reflection.MemberInfo"/>.
+            </summary>
+            <param name="expression">The expression to convert.</param>
+            <returns>The member info.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ConventionManager">
+            <summary>
+            Used to configure the conventions used by the framework to apply bindings and create actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.BooleanToVisibilityConverter">
+            <summary>
+            Converters <see cref="T:System.Boolean"/> to/from <see cref="T:System.Windows.Visibility"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.IncludeStaticProperties">
+            <summary>
+            Indicates whether or not static properties should be included during convention name matching.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.OverwriteContent">
+            <summary>
+            Indicates whether or not the Content of ContentControls should be overwritten by conventional bindings.
+            </summary>
+            <remarks>False by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultItemTemplate">
+            <summary>
+            The default DataTemplate used for ItemsControls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DefaultHeaderTemplate">
+            <summary>
+            The default DataTemplate used for Headered controls when required.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.Singularize">
+            <summary>
+            Changes the provided word from a plural form to a singular form.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.DerivePotentialSelectionNames">
+            <summary>
+            Derives the SelectedItem property name.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyBindingMode">
+            <summary>
+            Applies the appropriate binding mode to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValidation">
+            <summary>
+            Determines whether or not and what type of validation to enable on the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyValueConverter">
+            <summary>
+            Determines whether a value converter is is needed and applies one to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyStringFormat">
+            <summary>
+            Determines whether a custom string format is needed and applies it to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.ApplyUpdateSourceTrigger">
+            <summary>
+            Determines whether a custom update source trigger should be applied to the binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.HasBinding">
+            <summary>
+            Determines whether a particular dependency property already has a binding on the provided element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ConventionManager.SetBinding">
+            <summary>
+            Creates a binding and sets it on the element.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention``1(System.Windows.DependencyProperty,System.String,System.String)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <typeparam name="T">The type of element.</typeparam>
+            <param name="bindableProperty">The default property for binding conventions.</param>
+            <param name="parameterProperty">The default property for action parameters.</param>
+            <param name="eventName">The default event to trigger actions.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.AddElementConvention(Caliburn.Micro.ElementConvention)">
+            <summary>
+            Adds an element convention.
+            </summary>
+            <param name="convention"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetElementConvention(System.Type)">
+            <summary>
+            Gets an element convention for the provided element type.
+            </summary>
+            <param name="elementType">The type of element to locate the convention for.</param>
+            <returns>The convention if found, null otherwise.</returns>
+            <remarks>Searches the class hierarchy for conventions.</remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyItemTemplate(System.Windows.Controls.ItemsControl,System.Reflection.PropertyInfo)">
+            <summary>
+            Attempts to apply the default item template to the items control.
+            </summary>
+            <param name="itemsControl">The items control.</param>
+            <param name="property">The collection property.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ConfigureSelectedItem(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type,System.String)">
+            <summary>
+            Configures the selected item convention.
+            </summary>
+            <param name="selector">The element that has a SelectedItem property.</param>
+            <param name="selectedItemProperty">The SelectedItem property.</param>
+            <param name="viewModelType">The view model type.</param>
+            <param name="path">The property path.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplyHeaderTemplate(System.Windows.FrameworkElement,System.Windows.DependencyProperty,System.Type)">
+            <summary>
+            Applies a header template based on <see cref="T:Caliburn.Micro.IHaveDisplayName"/>
+            </summary>
+            <param name="element"></param>
+            <param name="headerTemplateProperty"></param>
+            <param name="viewModelType"></param>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.GetPropertyCaseInsensitive(System.Type,System.String)">
+            <summary>
+            Gets a property by name, ignoring case and searching all interfaces.
+            </summary>
+            <param name="type">The type to inspect.</param>
+            <param name="propertyName">The property to search for.</param>
+            <returns>The property or null if not found.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.ConventionManager.ApplySilverlightTriggers(System.Windows.DependencyObject,System.Windows.DependencyProperty,System.Func{System.Windows.FrameworkElement,System.Windows.Data.BindingExpression},System.Reflection.PropertyInfo,System.Windows.Data.Binding)">
+            <summary>
+            Accounts for the lack of UpdateSourceTrigger in silverlight.
+            </summary>
+            <param name="element">The element to wire for change events on.</param>
+            <param name="dependencyProperty">The property that is being bound.</param>
+            <param name="expressionSource">Gets the the binding expression that needs to be updated.</param>
+            <param name="property">The property being bound to if available.</param>
+            <param name="binding">The binding if available.</param>
+        </member>
+        <member name="T:Caliburn.Micro.AssemblySource">
+            <summary>
+            A source of assemblies that are inspectable by the framework.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.AssemblySource.Instance">
+            <summary>
+            The singleton instance of the AssemblySource used by the framework.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Message">
+            <summary>
+            Host's attached properties related to routed UI messaging.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetHandler(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Places a message handler on this element.
+            </summary>
+            <param name="d">The element.</param>
+            <param name="value">The message handler.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetHandler(System.Windows.DependencyObject)">
+            <summary>
+            Gets the message handler for this element.
+            </summary>
+            <param name="d">The element.</param>
+            <returns>The message handler.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.Message.AttachProperty">
+            <summary>
+            A property definition representing attached triggers and messages.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Message.SetAttach(System.Windows.DependencyObject,System.String)">
+            <summary>
+            Sets the attached triggers and messages.
+            </summary>
+            <param name="d">The element to attach to.</param>
+            <param name="attachText">The parsable attachment text.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Message.GetAttach(System.Windows.DependencyObject)">
+            <summary>
+            Gets the attached triggers and messages.
+            </summary>
+            <param name="d">The element that was attached to.</param>
+            <returns>The parsable attachment text.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.IHaveParameters">
+            <summary>
+            Indicates that a message is parameterized.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.IHaveParameters.Parameters">
+            <summary>
+            Represents the parameters of a message.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ElementConvention">
+            <summary>
+            Represents the conventions for a particular element type.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ElementType">
+            <summary>
+            The type of element to which the conventions apply.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.GetBindableProperty">
+            <summary>
+            Gets the default property to be used in binding conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.CreateTrigger">
+            <summary>
+            The default trigger to be used when wiring actions on this element.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ParameterProperty">
+            <summary>
+            The default property to be used for parameters of this type in actions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ElementConvention.ApplyBinding">
+            <summary>
+            Applies custom conventions for elements of this type.
+            </summary>
+            <remarks>Pass the view model type, property path, property instance, framework element and its convention.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.Coroutine">
+            <summary>
+            Manages coroutine execution.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Coroutine.CreateParentEnumerator">
+            <summary>
+            Creates the parent enumerator.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Coroutine.BeginExecute(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult},Caliburn.Micro.ActionExecutionContext,System.EventHandler{Caliburn.Micro.ResultCompletionEventArgs})">
+            <summary>
+            Executes a coroutine.
+            </summary>
+            <param name="coroutine">The coroutine to execute.</param>
+            <param name="context">The context to execute the coroutine within.</param>
+            /// <param name="callback">The completion callback for the coroutine.</param>
+        </member>
+        <member name="E:Caliburn.Micro.Coroutine.Completed">
+            <summary>
+            Called upon completion of a coroutine.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ViewLocator">
+            <summary>
+              A strategy for determining which view to use for a given model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.NameTransformer">
+            <summary>
+             Used to transform names.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.ContextSeparator">
+            <summary>
+              Separator used when resolving View names for context instances.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.GetOrCreateViewType">
+            <summary>
+              Retrieves the view from the IoC container or tries to create it if not found.
+            </summary>
+            <remarks>
+              Pass the type of view as a parameter and recieve an instance of the view.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateTypeForModelType">
+            <summary>
+              Locates the view type based on the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view type.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModelType">
+            <summary>
+              Locates the view for the specified model type.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model type, display location (or null) and the context instance (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewLocator.LocateForModel">
+            <summary>
+              Locates the view for the specified model instance.
+            </summary>
+            <returns>The view.</returns>
+            <remarks>
+              Pass the model instance, display location (or null) and the context (or null) as parameters and receive a view instance.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.ViewLocator.InitializeComponent(System.Object)">
+            <summary>
+              When a view does not contain a code-behind file, we need to automatically call InitializeCompoent.
+            </summary>
+            <param name = "element">The element to initialize</param>
+        </member>
+        <member name="T:Caliburn.Micro.MessageBinder">
+            <summary>
+            A service that is capable of properly binding values to a method's parameters and creating instances of <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.SpecialValues">
+            <summary>
+            The special parameter values recognized by the message binder along with their resolvers.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.CustomConverters">
+            <summary>
+            Custom converters used by the framework registered by detination type for which the will be selected.
+            The converter is passed the existing value to convert and a "context" object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.DetermineParameters(Caliburn.Micro.ActionExecutionContext,System.Reflection.ParameterInfo[])">
+            <summary>
+            Determines the parameters that a method should be invoked with.
+            </summary>
+            <param name="context">The action execution context.</param>
+            <param name="requiredParameters">The parameters required to complete the invocation.</param>
+            <returns>The actual parameter values.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.MessageBinder.EvaluateParameter">
+            <summary>
+            Transforms the textual parameter into the actual parameter.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.CoerceValue(System.Type,System.Object,System.Object)">
+            <summary>
+            Coerces the provided value to the destination type.
+            </summary>
+            <param name="destinationType">The destination type.</param>
+            <param name="providedValue">The provided value.</param>
+            <param name="context">An optional context value which can be used during conversion.</param>
+            <returns>The coerced value.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.MessageBinder.GetDefaultValue(System.Type)">
+            <summary>
+            Gets the default value for a type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>The default value.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.ICloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.ICloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.DefaultCloseStrategy`1">
+            <summary>
+            Used to gather the results from multiple child elements which may or may not prevent closing.
+            </summary>
+            <typeparam name="T">The type of child element.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the class.
+            </summary>
+            <param name="closeConductedItemsWhenConductorCannotClose">Indicates that even if all conducted items are not closable, those that are should be closed. The default is FALSE.</param>
+        </member>
+        <member name="M:Caliburn.Micro.DefaultCloseStrategy`1.Execute(System.Collections.Generic.IEnumerable{`0},System.Action{System.Boolean,System.Collections.Generic.IEnumerable{`0}})">
+            <summary>
+            Executes the strategy.
+            </summary>
+            <param name="toClose">Items that are requesting close.</param>
+            <param name="callback">The action to call when all enumeration is complete and the close results are aggregated.
+            The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.</param>
+        </member>
+        <member name="T:Caliburn.Micro.BooleanToVisibilityConverter">
+            <summary>
+            An <see cref="T:System.Windows.Data.IValueConverter"/> which converts <see cref="T:System.Boolean"/> to <see cref="T:System.Windows.Visibility"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BooleanToVisibilityConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
+            <summary>
+            Converts a boolean value to a <see cref="T:System.Windows.Visibility"/> value.
+            </summary>
+            <param name="value">The value produced by the binding source.</param>
+            <param name="targetType">The type of the binding target property.</param>
+            <param name="parameter">The converter parameter to use.</param>
+            <param name="culture">The culture to use in the converter.</param>
+            <returns>
+            A converted value. If the method returns null, the valid null value is used.
+            </returns>
+        </member>
+        <member name="M:Caliburn.Micro.BooleanToVisibilityConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
+            <summary>
+            Converts a value <see cref="T:System.Windows.Visibility"/> value to a boolean value.
+            </summary>
+            <param name="value">The value that is produced by the binding target.</param>
+            <param name="targetType">The type to convert to.</param>
+            <param name="parameter">The converter parameter to use.</param>
+            <param name="culture">The culture to use in the converter.</param>
+            <returns>
+            A converted value. If the method returns null, the valid null value is used.
+            </returns>
+        </member>
+        <member name="T:Caliburn.Micro.Mouse">
+            <summary>
+            A mouse helper utility.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Mouse.Initialize(System.Windows.UIElement)">
+            <summary>
+            Initializes the mouse helper with the UIElement to use in mouse tracking.
+            </summary>
+            <param name="element">The UIElement to use for mouse tracking.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Mouse.Position">
+            <summary>
+            The current position of the mouse.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle">
+            <summary>
+              A marker interface for classes that subscribe to messages.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IHandle`1">
+            <summary>
+              Denotes a class which can handle a particular type of message.
+            </summary>
+            <typeparam name = "TMessage">The type of message to handle.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.IHandle`1.Handle(`0)">
+            <summary>
+              Handles the message.
+            </summary>
+            <param name = "message">The message.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IEventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Uses the default thread marshaller during publication.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.IEventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.IEventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.EventAggregator">
+            <summary>
+              Enables loosely-coupled publication of and subscription to events.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.EventAggregator.DefaultPublicationThreadMarshaller">
+            <summary>
+              The default thread marshaller used for publication;
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.#ctor">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.EventAggregator"/> class.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Subscribe(System.Object)">
+            <summary>
+              Subscribes an instance to all events declared through implementations of <see cref="T:Caliburn.Micro.IHandle`1"/>
+            </summary>
+            <param name="instance">The instance to subscribe for event publication.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Unsubscribe(System.Object)">
+            <summary>
+              Unsubscribes the instance from all events.
+            </summary>
+            <param name = "instance">The instance to unsubscribe.</param>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object)">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <remarks>
+              Does not marshall the the publication to any special thread by default.
+            </remarks>
+        </member>
+        <member name="M:Caliburn.Micro.EventAggregator.Publish(System.Object,System.Action{System.Action})">
+            <summary>
+              Publishes a message.
+            </summary>
+            <param name = "message">The message instance.</param>
+            <param name = "marshal">Allows the publisher to provide a custom thread marshaller for the message publication.</param>
+        </member>
+        <member name="P:Caliburn.Micro.EventAggregator.PublicationThreadMarshaller">
+            <summary>
+              Gets or sets the default publication thread marshaller.
+            </summary>
+            <value>
+              The default publication thread marshaller.
+            </value>
+        </member>
+        <member name="T:Caliburn.Micro.ViewAttachedEventArgs">
+            <summary>
+            The event args for the <see cref="E:Caliburn.Micro.IViewAware.ViewAttached"/> event.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.View">
+            <summary>
+            The view.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewAttachedEventArgs.Context">
+            <summary>
+            The context.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IChild`1">
+            <summary>
+            Denotes a node within a parent/child hierarchy.
+            </summary>
+            <typeparam name="TParent">The type of parent.</typeparam>
+        </member>
+        <member name="P:Caliburn.Micro.IChild`1.Parent">
+            <summary>
+            Gets or Sets the Parent
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionMessage">
+            <summary>
+            Used to send a message from the UI to a presentation model class, indicating that a particular Action should be invoked.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.EnforceGuardsDuringInvocation">
+            <summary>
+             Causes the action invocation to "double check" if the action should be invoked by executing the guard immediately before hand.
+            </summary>
+             <remarks>This is disabled by default. If multiple actions are attached to the same element, you may want to enable this so that each individaul action checks its guard regardless of how the UI state appears.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ThrowsExceptions">
+            <summary>
+             Causes the action to throw if it cannot locate the target or the method at invocation time.
+            </summary>
+             <remarks>True by default.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.MethodNameProperty">
+            <summary>
+            Represents the method name of an action message.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ParametersProperty">
+            <summary>
+            Represents the parameters of an action message.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.ActionMessage"/>.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="eventArgs">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.UpdateAvailability">
+            <summary>
+            Forces an update of the UI's Enabled/Disabled state based on the the preconditions associated with the method.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.ToString">
+            <summary>
+            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </summary>
+            <returns>
+            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
+            </returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.InvokeAction">
+            <summary>
+            Invokes the action using the specified <see cref="T:Caliburn.Micro.ActionExecutionContext"/>
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.ApplyAvailabilityEffect">
+            <summary>
+            Applies an availability effect, such as IsEnabled, to an element.
+            </summary>
+            <remarks>Returns a value indicating whether or not the action is available.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.GetTargetMethod">
+            <summary>
+            Finds the method on the target matching the specified message.
+            </summary>
+            <param name="target">The target.</param>
+            <param name="message">The message.</param>
+            <returns>The matching method, if available.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.SetMethodBinding">
+            <summary>
+            Sets the target, method and view on the context. Uses a bubbling strategy by default.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionMessage.PrepareContext">
+            <summary>
+            Prepares the action execution context for use.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionMessage.TryFindGuardMethod(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Try to find a candidate for guard function, having:
+               - a name in the form "CanXXX"
+               - no generic parameters
+               - a bool return type
+               - no parameters or a set of parameters corresponding to the action method
+            </summary>
+            <param name="context">The execution context</param>
+            <returns>A MethodInfo, if found; null otherwise</returns>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.MethodName">
+            <summary>
+            Gets or sets the name of the method to be invoked on the presentation model class.
+            </summary>
+            <value>The name of the method.</value>
+        </member>
+        <member name="P:Caliburn.Micro.ActionMessage.Parameters">
+            <summary>
+            Gets the parameters to pass as part of the method invocation.
+            </summary>
+            <value>The parameters.</value>
+        </member>
+        <member name="E:Caliburn.Micro.ActionMessage.Detaching">
+            <summary>
+            Occurs before the message detaches from the associated object.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationEventArgs">
+            <summary>
+            EventArgs sent during activation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationEventArgs.WasInitialized">
+            <summary>
+            Indicates whether the sender was initialized in addition to being activated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActivationProcessedEventArgs">
+            <summary>
+            Contains details about the success or failure of an item's activation through an <see cref="T:Caliburn.Micro.IConductor"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Item">
+            <summary>
+            The item whose activation was processed.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActivationProcessedEventArgs.Success">
+            <summary>
+            Gets or sets a value indicating whether the activation was a success.
+            </summary>
+            <value><c>true</c> if success; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.DeactivationEventArgs">
+            <summary>
+            EventArgs sent during deactivation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.DeactivationEventArgs.WasClosed">
+            <summary>
+            Indicates whether the sender was closed in addition to being deactivated.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer">
+            <summary>
+             Class for managing the list of rules for doing name transformation.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.String,System.String)">
+            <summary>
+             Adds a transform using a single replacement value and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValue">The replacement value.</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.AddRule(System.String,System.Collections.Generic.IEnumerable{System.String},System.String)">
+            <summary>
+             Adds a transform using a list of replacement values and a global filter pattern.
+            </summary>
+            <param name = "replacePattern">Regular expression pattern for replacing text</param>
+            <param name = "replaceValueList">The list of replacement values</param>
+            <param name = "globalFilterPattern">Regular expression pattern for global filtering</param>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String)">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.NameTransformer.Transform(System.String,System.Func{System.String,System.String})">
+            <summary>
+            Gets the list of transformations for a given name.
+            </summary>
+            <param name = "source">The name to transform into the resolved name list</param>
+            <param name = "getReplaceString">A function to do a transform on each item in the ReplaceValueList prior to applying the regular expression transform</param>
+            <returns>The transformed names.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.NameTransformer.Rule">
+            <summary>
+             A rule that describes a name transform.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.GlobalFilterPattern">
+            <summary>
+            Regular expression pattern for global filtering
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacePattern">
+            <summary>
+            Regular expression pattern for replacing text
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.NameTransformer.Rule.ReplacementValues">
+            <summary>
+            The list of replacement values
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ActionExecutionContext">
+            <summary>
+            The context used during the execution of an Action or its guard.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.CanExecute">
+            <summary>
+            Determines whether the action can execute.
+            </summary>
+            <remarks>Returns true if the action can execute, false otherwise.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.EventArgs">
+            <summary>
+            Any event arguments associated with the action's invocation.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ActionExecutionContext.Method">
+            <summary>
+            The actual method info to be invoked.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ActionExecutionContext.Dispose">
+            <summary>
+            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Message">
+            <summary>
+            The message being executed.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Source">
+            <summary>
+            The source from which the message originates.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Target">
+            <summary>
+            The instance on which the action is invoked.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.View">
+            <summary>
+            The view associated with the target.
+            </summary>
+        </member>
+        <member name="P:Caliburn.Micro.ActionExecutionContext.Item(System.String)">
+            <summary>
+            Gets or sets additional data needed to invoke the action.
+            </summary>
+            <param name="key">The data key.</param>
+            <returns>Custom data associated with the context.</returns>
+        </member>
+        <member name="E:Caliburn.Micro.ActionExecutionContext.Disposing">
+            <summary>
+            Called when the execution context is disposed
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.ResultCompletionEventArgs">
+            <summary>
+            The event args for the Completed event of an <see cref="T:Caliburn.Micro.IResult"/>.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.Error">
+            <summary>
+            Gets or sets the error if one occurred.
+            </summary>
+            <value>The error.</value>
+        </member>
+        <member name="F:Caliburn.Micro.ResultCompletionEventArgs.WasCancelled">
+            <summary>
+            Gets or sets a value indicating whether the result was cancelled.
+            </summary>
+            <value><c>true</c> if cancelled; otherwise, <c>false</c>.</value>
+        </member>
+        <member name="T:Caliburn.Micro.BindingScope">
+            <summary>
+            Provides methods for searching a given scope for named elements.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.BindingScope.FindName(System.Collections.Generic.IEnumerable{System.Windows.FrameworkElement},System.String)">
+            <summary>
+            Searches through the list of named elements looking for a case-insensitive match.
+            </summary>
+            <param name="elementsToSearch">The named elements to search through.</param>
+            <param name="name">The name to search for.</param>
+            <returns>The named element or null if not found.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.BindingScope.GetNamedElements">
+            <summary>
+            Gets all the <see cref="T:System.Windows.FrameworkElement"/> instances with names in the scope.
+            </summary>
+            <returns>Named <see cref="T:System.Windows.FrameworkElement"/> instances in the provided scope.</returns>
+            <remarks>Pass in a <see cref="T:System.Windows.DependencyObject"/> and receive a list of named <see cref="T:System.Windows.FrameworkElement"/> instances in the same scope.</remarks>
+        </member>
+        <member name="T:Caliburn.Micro.TypeDescriptor">
+            <summary>
+            Provides information about the characteristics for a component, such as its attributes, properties, and events. This class cannot be inherited.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.TypeDescriptor.GetConverter(System.Type)">
+            <summary>
+            Returns a type converter for the specified type.
+            </summary>
+            <param name="type">The System.Type of the target component.</param>
+            <returns>A System.ComponentModel.TypeConverter for the specified type.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.SequentialResult">
+            <summary>
+              An implementation of <see cref="T:Caliburn.Micro.IResult"/> that enables sequential execution of multiple results.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.IResult">
+            <summary>
+            Allows custom code to execute after the return of a action.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+            Executes the result using the specified context.
+            </summary>
+            <param name="context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.IResult.Completed">
+            <summary>
+            Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.#ctor(System.Collections.Generic.IEnumerator{Caliburn.Micro.IResult})">
+            <summary>
+              Initializes a new instance of the <see cref="T:Caliburn.Micro.SequentialResult"/> class.
+            </summary>
+            <param name="enumerator">The enumerator.</param>
+        </member>
+        <member name="M:Caliburn.Micro.SequentialResult.Execute(Caliburn.Micro.ActionExecutionContext)">
+            <summary>
+              Executes the result using the specified context.
+            </summary>
+            <param name = "context">The context.</param>
+        </member>
+        <member name="E:Caliburn.Micro.SequentialResult.Completed">
+            <summary>
+              Occurs when execution has completed.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bootstrapper">
+            <summary>
+            Instantiate this class in order to configure the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.#ctor(System.Boolean)">
+            <summary>
+            Creates an instance of the bootstrapper.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartDesignTime">
+            <summary>
+            Called by the bootstrapper's constructor at design time to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.StartRuntime">
+            <summary>
+            Called by the bootstrapper's constructor at runtime to start the framework.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.Configure">
+            <summary>
+            Override to configure the framework and setup your IoC container.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.PrepareApplication">
+            <summary>
+            Provides an opportunity to hook into the application object.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.SelectAssemblies">
+            <summary>
+            Override to tell the framework where to find assemblies to inspect for views, etc.
+            </summary>
+            <returns>A list of assemblies to inspect.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetInstance(System.Type,System.String)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="service">The service to locate.</param>
+            <param name="key">The key to locate.</param>
+            <returns>The located service.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.GetAllInstances(System.Type)">
+            <summary>
+            Override this to provide an IoC specific implementation
+            </summary>
+            <param name="service">The service to locate.</param>
+            <returns>The located services.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.BuildUp(System.Object)">
+            <summary>
+            Override this to provide an IoC specific implementation.
+            </summary>
+            <param name="instance">The instance to perform injection on.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnStartup(System.Object,System.Windows.StartupEventArgs)">
+            <summary>
+            Override this to add custom behavior to execute after the application starts.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnExit(System.Object,System.EventArgs)">
+            <summary>
+            Override this to add custom behavior on exit.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.OnUnhandledException(System.Object,System.Windows.ApplicationUnhandledExceptionEventArgs)">
+            <summary>
+            Override this to add custom behavior for unhandled exceptions.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The event args.</param>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper.DisplayRootViewFor(System.Windows.Application,System.Type)">
+            <summary>
+            Locates the view model, locates the associate view, binds them and shows it as the root view.
+            </summary>
+            <param name="application">The application.</param>
+            <param name="viewModelType">The view model type.</param>
+        </member>
+        <member name="P:Caliburn.Micro.Bootstrapper.Application">
+            <summary>
+            The application.
+            </summary>
+        </member>
+        <member name="T:Caliburn.Micro.Bootstrapper`1">
+            <summary>
+            A strongly-typed version of <see cref="T:Caliburn.Micro.Bootstrapper"/> that specifies the type of root model to create for the application.
+            </summary>
+            <typeparam name="TRootModel">The type of root model for the application.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.Bootstrapper`1.OnStartup(System.Object,System.Windows.StartupEventArgs)">
+            <summary>
+            Override this to add custom behavior to execute after the application starts.
+            </summary>
+            <param name="sender">The sender.</param>
+            <param name="e">The args.</param>
+        </member>
+        <member name="T:Caliburn.Micro.IWindowManager">
+            <summary>
+            A service that manages windows.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+            Shows a modal dialog for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowNotification(System.Object,System.Int32,System.Object)">
+            <summary>
+            Shows a toast notification for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="durationInMilliseconds">How long the notification should appear for.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.IWindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Shows a popup at the current mouse position.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The view context.</param>
+            <param name="settings">The optional popup settings.</param>
+        </member>
+        <member name="T:Caliburn.Micro.WindowManager">
+            <summary>
+            A service that manages windows.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowDialog(System.Object,System.Object)">
+            <summary>
+            Shows a modal dialog for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowNotification(System.Object,System.Int32,System.Object)">
+            <summary>
+            Shows a toast notification for the specified model.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="durationInMilliseconds">How long the notification should appear for.</param>
+            <param name="context">The context.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.ShowPopup(System.Object,System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Shows a popup at the current mouse position.
+            </summary>
+            <param name="rootModel">The root model.</param>
+            <param name="context">The view context.</param>
+            <param name="settings">The optional popup settings.</param>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.CreatePopup(System.Object,System.Collections.Generic.IDictionary{System.String,System.Object})">
+            <summary>
+            Creates a popup for hosting a popup window.
+            </summary>
+            <param name="rootModel">The model.</param>
+            <param name="settings">The optional popup settings.</param>
+            <returns>The popup.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.WindowManager.EnsureWindow(System.Object,System.Object)">
+            <summary>
+            Ensures that the view is a <see cref="T:System.Windows.Controls.ChildWindow"/> or is wrapped by one.
+            </summary>
+            <param name="model">The view model.</param>
+            <param name="view">The view.</param>
+            <returns>The window.</returns>
+        </member>
+        <member name="T:Caliburn.Micro.Bind">
+            <summary>
+            Hosts dependency properties for binding.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.Bind.ModelProperty">
+            <summary>
+            Allows binding on an existing view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.GetModel(System.Windows.DependencyObject)">
+            <summary>
+            Gets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <returns>The model.</returns>
+        </member>
+        <member name="M:Caliburn.Micro.Bind.SetModel(System.Windows.DependencyObject,System.Object)">
+            <summary>
+            Sets the model to bind to.
+            </summary>
+            <param name="dependencyObject">The dependency object to bind to.</param>
+            <param name="value">The model.</param>
+        </member>
+        <member name="T:Caliburn.Micro.AttachedCollection`1">
+            <summary>
+            A collection that can exist as part of a behavior.
+            </summary>
+            <typeparam name="T">The type of item in the attached collection.</typeparam>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.#ctor">
+            <summary>
+            Creates an instance of <see cref="T:Caliburn.Micro.AttachedCollection`1"/>
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attached the collection.
+            </summary>
+            <param name="dependencyObject">The dependency object to attach the collection to.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.Detach">
+            <summary>
+            Detaches the collection.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemAdded(`0)">
+            <summary>
+            Called when an item is added from the collection.
+            </summary>
+            <param name="item">The item that was added.</param>
+        </member>
+        <member name="M:Caliburn.Micro.AttachedCollection`1.OnItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The item that was removed.</param>
+        </member>
+        <member name="T:Caliburn.Micro.ViewModelBinder">
+            <summary>
+            Binds a view to a view model.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ApplyConventionsByDefault">
+            <summary>
+            Gets or sets a value indicating whether to apply conventions by default.
+            </summary>
+            <value>
+               <c>true</c> if conventions should be applied by default; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.ConventionsAppliedProperty">
+            <summary>
+            Indicates whether or not the conventions have already been applied to the view.
+            </summary>
+        </member>
+        <member name="M:Caliburn.Micro.ViewModelBinder.ShouldApplyConventions(System.Windows.FrameworkElement)">
+            <summary>
+            Determines whether a view should have conventions applied to it.
+            </summary>
+            <param name="view">The view to check.</param>
+            <returns>Whether or not conventions should be applied to the view.</returns>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindProperties">
+            <summary>
+            Creates data bindings on the view's controls based on the provided properties.
+            </summary>
+            <remarks>Parameters include named Elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.BindActions">
+            <summary>
+            Attaches instances of <see cref="T:Caliburn.Micro.ActionMessage"/> to the view's controls based on the provided methods.
+            </summary>
+            <remarks>Parameters include the named elements to search through and the type of view model to determine conventions for. Returns unmatched elements.</remarks>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.HandleUnmatchedElements">
+            <summary>
+            Allows the developer to add custom handling of named elements which were not matched by any default conventions.
+            </summary>
+        </member>
+        <member name="F:Caliburn.Micro.ViewModelBinder.Bind">
+             <summary>
+             Binds the specified viewModel to the view.
+             </summary>
+            <remarks>Passes the the view model, view and creation context (or null for default) to use in applying binding.</remarks>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.dll
new file mode 100644 (file)
index 0000000..d16d258
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Controls.xml
new file mode 100644 (file)
index 0000000..e79c04a
--- /dev/null
@@ -0,0 +1,1726 @@
+<?xml version="1.0" encoding="utf-8"?>
+<doc>
+  <assembly>
+    <name>System.Windows.Controls</name>
+  </assembly>
+  <members>
+    <member name="T:System.Windows.HierarchicalDataTemplate">
+      <summary>Represents a <see cref="T:System.Windows.DataTemplate" /> that supports <see cref="T:System.Windows.Controls.HeaderedItemsControl" /> objects, such as <see cref="T:System.Windows.Controls.TreeViewItem" />.</summary>
+    </member>
+    <member name="M:System.Windows.HierarchicalDataTemplate.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.HierarchicalDataTemplate" /> class.</summary>
+    </member>
+    <member name="P:System.Windows.HierarchicalDataTemplate.ItemContainerStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> that is applied to the item container for each child item.</summary>
+      <returns>The style that is applied to the item container for each child item.</returns>
+    </member>
+    <member name="P:System.Windows.HierarchicalDataTemplate.ItemsSource">
+      <summary>Gets or sets the binding that is used to generate content for the next sublevel in the data hierarchy.</summary>
+      <returns>The binding that is used to generate content for the next sublevel in the data hierarchy. The default value is null.</returns>
+    </member>
+    <member name="P:System.Windows.HierarchicalDataTemplate.ItemTemplate">
+      <summary>Gets or sets the <see cref="T:System.Windows.DataTemplate" /> to apply to the <see cref="P:System.Windows.Controls.ItemsControl.ItemTemplate" /> property on a generated <see cref="T:System.Windows.Controls.HeaderedItemsControl" />, such as a <see cref="T:System.Windows.Controls.TreeViewItem" />, to indicate how to display items in the next sublevel in the data hierarchy.</summary>
+      <returns>The <see cref="T:System.Windows.DataTemplate" /> to apply to the <see cref="P:System.Windows.Controls.ItemsControl.ItemTemplate" /> property on a generated <see cref="T:System.Windows.Controls.HeaderedItemsControl" />, such as a <see cref="T:System.Windows.Controls.TreeViewItem" />, to indicate how to display items in the next sublevel in the data hierarchy.</returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.CalendarAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.Calendar" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.#ctor(System.Windows.Controls.Calendar)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.Calendar" /> instance to associate with the <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for the <see cref="T:System.Windows.Controls.Calendar" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>By default, the <see cref="F:System.Windows.Automation.Peers.AutomationControlType.Calendar" /> enumeration value.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the <see cref="T:System.Windows.Controls.Calendar" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>By default, the type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.GetNameCore">
+      <summary>Gets the name of the class of the object associated with this <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.</summary>
+      <returns>A name from a "Labeled By" associated control if it exists, otherwise, a name from the <paramref name="owner" /> value.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for this <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IGridProvider#ColumnCount">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridProvider.ColumnCount" />.</summary>
+      <returns>The total number of columns in a grid. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IGridProvider#GetItem(System.Int32,System.Int32)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IGridProvider.GetItem(System.Int32,System.Int32)" />.</summary>
+      <returns>The UI automation provider for the specified cell. </returns>
+      <param name="row">The ordinal number of the row.</param>
+      <param name="column">The ordinal number of the column.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IGridProvider#RowCount">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridProvider.RowCount" />.</summary>
+      <returns>The total number of rows in a grid. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IMultipleViewProvider#CurrentView">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IMultipleViewProvider.CurrentView" />.</summary>
+      <returns>The value for the current view of the UI automation element. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IMultipleViewProvider#GetSupportedViews">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IMultipleViewProvider.GetSupportedViews" />.</summary>
+      <returns>A collection of values that identifies the views that are available for a UI automation element.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IMultipleViewProvider#GetViewName(System.Int32)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IMultipleViewProvider.GetViewName(System.Int32)" />. </summary>
+      <returns>A localized name for the view. </returns>
+      <param name="viewId">The view identifier.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#IMultipleViewProvider#SetCurrentView(System.Int32)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IMultipleViewProvider.SetCurrentView(System.Int32)" />.</summary>
+      <param name="viewId">A view identifier.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#CanSelectMultiple">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.CanSelectMultiple" />.</summary>
+      <returns>true if multiple selection is allowed; otherwise, false. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#GetSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionProvider.GetSelection" />.</summary>
+      <returns>A list of UI automation providers. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#IsSelectionRequired">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.IsSelectionRequired" />.</summary>
+      <returns>true if selection is required; otherwise, false. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ITableProvider#GetColumnHeaders">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITableProvider.GetColumnHeaders" />.</summary>
+      <returns>A collection of UI automation providers. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ITableProvider#GetRowHeaders">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITableProvider.GetRowHeaders" />.</summary>
+      <returns>A collection of UI automation providers. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarAutomationPeer.System#Windows#Automation#Provider#ITableProvider#RowOrColumnMajor">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITableProvider.RowOrColumnMajor" />.</summary>
+      <returns>The primary direction of traversal. </returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.#ctor(System.Windows.Controls.Primitives.CalendarButton)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> to associate with this <see cref="T:System.Windows.Automation.Peers.AutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>By default, the type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetHelpTextCore">
+      <summary>Returns the string that describes the functionality of the item that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetHelpText" />.</summary>
+      <returns>The help text, or <see cref="F:System.String.Empty" /> if there is no help text. By default, this implementation provides a DateTime.ToString behavior.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetLocalizedControlTypeCore">
+      <summary>Returns the localized version of the control type for the owner type that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetLocalizedControlType" />.</summary>
+      <returns>The string that contains the type of control.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetNameCore">
+      <summary>Gets the name of the class of the object associated with this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.</summary>
+      <returns>A name from a "Labeled By" control if it exists, otherwise from the <paramref name="owner" /> value.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for this <see cref="T:System.Windows.Automation.Peers.CalendarButtonAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#Column">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.Column" />.</summary>
+      <returns>A zero-based ordinal number that identifies the column that contains the cell or item.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#ColumnSpan">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.ColumnSpan" />.</summary>
+      <returns>The number of columns spanned.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#ContainingGrid">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.ContainingGrid" />.</summary>
+      <returns>A UI automation provider that implements the <see cref="F:System.Windows.Automation.Peers.PatternInterface.Grid" /> control pattern and that represents the cell or item container.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#Row">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.Row" />.</summary>
+      <returns>A zero-based ordinal number that identifies the row that contains the cell or item.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#RowSpan">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.RowSpan" />.</summary>
+      <returns>The number of rows that are spanned. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#IInvokeProvider#Invoke">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IInvokeProvider.Invoke" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#AddToSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.AddToSelection" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#IsSelected">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.IsSelected" />.</summary>
+      <returns>true if the element is selected; otherwise, false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#RemoveFromSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.RemoveFromSelection" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#Select">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.Select" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#SelectionContainer">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.SelectionContainer" />.</summary>
+      <returns>The provider that supports <see cref="T:System.Windows.Automation.Provider.ISelectionProvider" />.</returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> types to UI Automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.#ctor(System.Windows.Controls.Primitives.CalendarDayButton)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> instance that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration. By default, this method returns <see cref="F:System.Windows.Automation.Peers.AutomationControlType.Button" />.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>By default, the type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetHelpTextCore">
+      <summary>Returns the string that describes the functionality of the item that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetHelpText" />.</summary>
+      <returns>The help text, or <see cref="F:System.String.Empty" /> if there is no help text.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetLocalizedControlTypeCore">
+      <summary>Returns the localized version of the control type for the owner type that is associated with this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetLocalizedControlType" />.</summary>
+      <returns>The string that contains the type of control.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetNameCore">
+      <summary>Gets the text label of the object associated with this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.</summary>
+      <returns>A name from a "Labeled By" control if it exists, otherwise from the <paramref name="owner" /> value.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern implementation for this <see cref="T:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#Column">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.Column" />.</summary>
+      <returns>A zero-based ordinal number that identifies the column that contains the cell or item. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#ColumnSpan">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.ColumnSpan" />.</summary>
+      <returns>The number of columns. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#ContainingGrid">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.ContainingGrid" />.</summary>
+      <returns>The UI Automation provider.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#Row">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.Row" />.</summary>
+      <returns>A zero-based ordinal number that identifies the row that contains the cell or item. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IGridItemProvider#RowSpan">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IGridItemProvider.RowSpan" />.</summary>
+      <returns>The number of rows. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#IInvokeProvider#Invoke">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IInvokeProvider.Invoke" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#AddToSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.AddToSelection" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#IsSelected">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.IsSelected" />.</summary>
+      <returns>true if the element is selected; otherwise, false. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#RemoveFromSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.RemoveFromSelection" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#Select">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.Select" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#SelectionContainer">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.SelectionContainer" />.</summary>
+      <returns>The UI Automation provider.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ITableItemProvider#GetColumnHeaderItems">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITableItemProvider.GetColumnHeaderItems" />.</summary>
+      <returns>A collection of UI Automation providers.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer.System#Windows#Automation#Provider#ITableItemProvider#GetRowHeaderItems">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITableItemProvider.GetRowHeaderItems" />.</summary>
+      <returns>A collection of UI Automation providers.</returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.ChildWindow" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.#ctor(System.Windows.Controls.ChildWindow)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" /> class. </summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.ChildWindow" /> to associate with this <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" />.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="owner" /> is null.</exception>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the <see cref="T:System.Windows.Automation.Peers.AutomationControlType" /> for the element associated with this <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>A value of the enumeration.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class for the object associated with this <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" />. 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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.GetNameCore">
+      <summary>Gets the text label of the <see cref="T:System.Windows.Controls.ChildWindow" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" />. 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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for this <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanMove">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanMove" />.</summary>
+      <returns>true in all cases.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanResize">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanResize" />.</summary>
+      <returns>false in all cases.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanRotate">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanRotate" />.</summary>
+      <returns>false in all cases.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Move(System.Double,System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Move(System.Double,System.Double)" />.</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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Resize(System.Double,System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Resize(System.Double,System.Double)" />.</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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Rotate(System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Rotate(System.Double)" />.</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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#Close">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IWindowProvider.Close" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#InteractionState">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.InteractionState" />.</summary>
+      <returns>The interaction state of the control, as a value of the enumeration.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#IsModal">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.IsModal" />.</summary>
+      <returns>true in all cases.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#IsTopmost">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.IsTopmost" />.</summary>
+      <returns>true if the window is topmost; otherwise, false.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#Maximizable">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.Maximizable" />.</summary>
+      <returns>false in all cases.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#Minimizable">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.Minimizable" />.</summary>
+      <returns>false in all cases.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#SetVisualState(System.Windows.Automation.WindowVisualState)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IWindowProvider.SetVisualState(System.Windows.Automation.WindowVisualState)" />.</summary>
+      <param name="state">The visual state of the window to change to, as a value of the enumeration.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#VisualState">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IWindowProvider.VisualState" />.</summary>
+      <returns>
+        <see cref="F:System.Windows.Automation.WindowVisualState.Normal" /> in all cases.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.ChildWindowAutomationPeer.System#Windows#Automation#Provider#IWindowProvider#WaitForInputIdle(System.Int32)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IWindowProvider.WaitForInputIdle(System.Int32)" />.</summary>
+      <returns>true if the window has entered the idle state; false if the timeout occurred.</returns>
+      <param name="milliseconds">The amount of time, in milliseconds, to wait for the associated process to become idle.</param>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.DatePickerAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.DatePicker" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.#ctor(System.Windows.Controls.DatePicker)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.DatePicker" /> to associate with the <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration. By default, this method returns <see cref="F:System.Windows.Automation.Peers.AutomationControlType.Calendar" />.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>By default, the type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.GetLocalizedControlTypeCore">
+      <summary>Returns the localized version of the control type for the owner type that is associated with this <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetLocalizedControlType" />.</summary>
+      <returns>The string that contains the type of control.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.GetNameCore">
+      <summary>Gets the name of the class of the object associated with this <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.</summary>
+      <returns>A name from a "Labeled By" value if it exists, otherwise from the <paramref name="owner" /> value.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for the <see cref="T:System.Windows.Controls.DatePicker" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#Collapse">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IExpandCollapseProvider.Collapse" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#Expand">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IExpandCollapseProvider.Expand" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#ExpandCollapseState">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IExpandCollapseProvider.ExpandCollapseState" />.</summary>
+      <returns>The state, expanded or collapsed, of the control. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IValueProvider#IsReadOnly">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IValueProvider.IsReadOnly" />.</summary>
+      <returns>Returns false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IValueProvider#SetValue(System.String)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IValueProvider.SetValue(System.String)" />.</summary>
+      <param name="value">The value to set. The provider is responsible for converting the value to the appropriate data type. </param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.DatePickerAutomationPeer.System#Windows#Automation#Provider#IValueProvider#Value">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IValueProvider.Value" />.</summary>
+      <returns>The value of the control as a string. </returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.GridSplitter" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.#ctor(System.Windows.Controls.GridSplitter)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.GridSplitter" /> to associate with the <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration. By default, this method returns <see cref="F:System.Windows.Automation.Peers.AutomationControlType.Thumb" />.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>By default, the type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for the <see cref="T:System.Windows.Controls.GridSplitter" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanMove">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanMove" />.</summary>
+      <returns>true if the element can be moved; otherwise, false. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanResize">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanResize" />.</summary>
+      <returns>true if the element can be resized; otherwise, false. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#CanRotate">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ITransformProvider.CanRotate" />.</summary>
+      <returns>true if the element can be rotated; otherwise, false. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Move(System.Double,System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Move(System.Double,System.Double)" />.</summary>
+      <param name="x">Absolute screen coordinates of the left side of the control.</param>
+      <param name="y">Absolute screen coordinates of the top of the control.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Resize(System.Double,System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Resize(System.Double,System.Double)" />.</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>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.GridSplitterAutomationPeer.System#Windows#Automation#Provider#ITransformProvider#Rotate(System.Double)">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ITransformProvider.Rotate(System.Double)" />.</summary>
+      <param name="degrees">The number of degrees to rotate the control. A positive number rotates clockwise; a negative number rotates counterclockwise. </param>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.TabControlAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.TabControl" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.#ctor(System.Windows.Controls.TabControl)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.TabControl" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration. By default, this method returns <see cref="F:System.Windows.Automation.Peers.AutomationControlType.Tab" />.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>The type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.GetClickablePointCore">
+      <summary>Gets a clickable point on the control.</summary>
+      <returns>A point with <see cref="F:System.Double.NaN" /> coordinates, which indicates to automation that the tab itself has no clickable points (the item in the tab is the element that should be reported as clickable).</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for the <see cref="T:System.Windows.Controls.TabControl" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.IsKeyboardFocusableCore">
+      <summary>Retrieves a value that indicates whether the tab control can accept keyboard focus</summary>
+      <returns>true if the element can accept keyboard focus; otherwise, false.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TabControlAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#CanSelectMultiple">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.CanSelectMultiple" />.</summary>
+      <returns>true if multiple selection is allowed; otherwise, false. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabControlAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#GetSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionProvider.GetSelection" />.</summary>
+      <returns>A list of UI automation providers.</returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TabControlAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#IsSelectionRequired">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.IsSelectionRequired" />.</summary>
+      <returns>true if selection is required; otherwise, false. </returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.TabItemAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.TabItem" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.#ctor(System.Object)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.TabItem" /> to associate with the <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for this <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>The control type as a value of the enumeration. By default, this method returns <see cref="F:System.Windows.Automation.Peers.AutomationControlType.TabItem" />.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.GetChildrenCore">
+      <summary>Gets the collection of child elements of the <see cref="T:System.Windows.Controls.TabItem" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetChildren" />.</summary>
+      <returns>The collection of child elements of automation peers, for cases where the <see cref="P:System.Windows.Controls.ContentControl.Content" /> of a <see cref="T:System.Windows.Controls.TabControl" /> is a collection of elements and not a single element.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the class that is associated with this <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>The type name of the <paramref name="owner" /> value that the automation peer is constructed with.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.GetNameCore">
+      <summary>Gets the name of the class of the object associated with this <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />. Called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetName" />.</summary>
+      <returns>The string value from the tab item's <see cref="P:System.Windows.Controls.TabItem.Header" /> if available. Otherwise, <see cref="F:System.String.Empty" /></returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for the <see cref="T:System.Windows.Controls.TabItem" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TabItemAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.IsKeyboardFocusableCore">
+      <summary>Retrieves a value that indicates whether the tab item can accept keyboard focus</summary>
+      <returns>true if the element can accept keyboard focus; otherwise, false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#AddToSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.AddToSelection" />.</summary>
+      <exception cref="T:System.Windows.Automation.ElementNotEnabledException">Owner element is not enabled.</exception>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TabItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#IsSelected">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.IsSelected" />.</summary>
+      <returns>true if the element is selected; otherwise, false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#RemoveFromSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.RemoveFromSelection" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TabItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#Select">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.Select" />.</summary>
+      <exception cref="T:System.Windows.Automation.ElementNotEnabledException">Owner element is not enabled.</exception>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TabItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#SelectionContainer">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.SelectionContainer" />.</summary>
+      <returns>The provider that supports <see cref="T:System.Windows.Automation.Provider.ISelectionProvider" />.</returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.TreeViewAutomationPeer">
+      <summary>Exposes <see cref="T:System.Windows.Controls.TreeView" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.#ctor(System.Windows.Controls.TreeView)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.TreeView" /> to associate with the <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for the <see cref="T:System.Windows.Controls.TreeView" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>A value of the enumeration. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.GetChildrenCore">
+      <summary>Gets the collection of child elements of the <see cref="T:System.Windows.Controls.TreeView" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" />. </summary>
+      <returns>The collection of child elements.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the <see cref="T:System.Windows.Controls.TreeView" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>The string TreeView.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets a control pattern for the <see cref="T:System.Windows.Controls.TreeView" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values that indicates the control pattern.</param>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TreeViewAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#CanSelectMultiple">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.CanSelectMultiple" />.</summary>
+      <returns>true if multiple selection is allowed; otherwise, false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#GetSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionProvider.GetSelection" />.</summary>
+      <returns>A list of UI automation providers. </returns>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TreeViewAutomationPeer.System#Windows#Automation#Provider#ISelectionProvider#IsSelectionRequired">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionProvider.IsSelectionRequired" />.</summary>
+      <returns>true if selection is required; otherwise, false.</returns>
+    </member>
+    <member name="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer">
+      <summary>Exposes the items in <see cref="T:System.Windows.Controls.TreeViewItem" /> types to UI automation.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.#ctor(System.Windows.Controls.TreeViewItem)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" /> class.</summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.TreeViewItem" /> instance to associate with this <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" />.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.GetAutomationControlTypeCore">
+      <summary>Gets the control type for the <see cref="T:System.Windows.Controls.TreeViewItem" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetAutomationControlType" />.</summary>
+      <returns>A value of the enumeration. </returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.GetClassNameCore">
+      <summary>Gets the name of the <see cref="T:System.Windows.Controls.TreeViewItem" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" />. This method is called by <see cref="M:System.Windows.Automation.Peers.AutomationPeer.GetClassName" />.</summary>
+      <returns>The string TreeViewItem.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.GetPattern(System.Windows.Automation.Peers.PatternInterface)">
+      <summary>Gets the control pattern for the <see cref="T:System.Windows.Controls.TreeViewItem" /> that is associated with this <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" />.</summary>
+      <returns>The object that implements the pattern interface, or null if the specified pattern interface is not implemented by this peer.</returns>
+      <param name="patternInterface">One of the enumeration values.</param>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#Collapse">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IExpandCollapseProvider.Collapse" />.</summary>
+      <exception cref="T:System.Windows.Automation.ElementNotEnabledException">Owner control is not enabled.</exception>
+      <exception cref="T:System.InvalidOperationException">Owner control has no leaf nodes.</exception>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#Expand">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IExpandCollapseProvider.Expand" />.</summary>
+      <exception cref="T:System.Windows.Automation.ElementNotEnabledException">Owner control is not enabled.</exception>
+      <exception cref="T:System.InvalidOperationException">Owner control has no leaf nodes.</exception>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#IExpandCollapseProvider#ExpandCollapseState">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.IExpandCollapseProvider.ExpandCollapseState" />.</summary>
+      <returns>The state (expanded or collapsed) of the control.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#IScrollItemProvider#ScrollIntoView">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.IScrollItemProvider.ScrollIntoView" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#AddToSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.AddToSelection" />.</summary>
+      <exception cref="T:System.InvalidOperationException">Attempted a multiple selection. Tree views do not support multiple selection.</exception>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#IsSelected">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.IsSelected" />. </summary>
+      <returns>true if an item is selected; otherwise, false.</returns>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#RemoveFromSelection">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.RemoveFromSelection" />.</summary>
+    </member>
+    <member name="M:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#Select">
+      <summary>For a description of this member, see <see cref="M:System.Windows.Automation.Provider.ISelectionItemProvider.Select" />.</summary>
+    </member>
+    <member name="P:System.Windows.Automation.Peers.TreeViewItemAutomationPeer.System#Windows#Automation#Provider#ISelectionItemProvider#SelectionContainer">
+      <summary>For a description of this member, see <see cref="P:System.Windows.Automation.Provider.ISelectionItemProvider.SelectionContainer" />.</summary>
+      <returns>The UI automation provider.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.Calendar">
+      <summary>Represents a control that enables a user to select a date by using a visual calendar display. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.Calendar.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Calendar" /> class. </summary>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.BlackoutDates">
+      <summary>Gets or sets a collection of dates that are marked as not selectable.</summary>
+      <returns>A collection of dates that cannot be selected. The default value is an empty collection.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.CalendarButtonStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> associated with the control's internal <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> object.</summary>
+      <returns>The current style of the <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> object.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.CalendarButtonStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.CalendarButtonStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.CalendarButtonStyle" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.CalendarDayButtonStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> associated with the control's internal <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> object.</summary>
+      <returns>The current style of the <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> object.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.CalendarDayButtonStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.CalendarDayButtonStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.CalendarDayButtonStyle" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.CalendarItemStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> associated with the control's internal <see cref="T:System.Windows.Controls.Primitives.CalendarItem" /> object.</summary>
+      <returns>The current style of the <see cref="T:System.Windows.Controls.Primitives.CalendarItem" /> object.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.CalendarItemStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.CalendarItemStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.CalendarItemStyle" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.DisplayDate">
+      <summary>Gets or sets the date to display.</summary>
+      <returns>The date to display.</returns>
+      <exception cref="T:System.ArgumentOutOfRangeException">The given date is not in the range specified by <see cref="P:System.Windows.Controls.Calendar.DisplayDateStart" /> and <see cref="P:System.Windows.Controls.Calendar.DisplayDateEnd" />.</exception>
+    </member>
+    <member name="E:System.Windows.Controls.Calendar.DisplayDateChanged">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.Calendar.DisplayDate" /> property is changed.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.DisplayDateEnd">
+      <summary>Gets or sets the last date to be displayed.</summary>
+      <returns>The last date to display.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.DisplayDateEndProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.DisplayDateEnd" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.DisplayDateEnd" /> dependency property.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.DisplayDateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.DisplayDate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.DisplayDate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.DisplayDateStart">
+      <summary>Gets or sets the first date to be displayed.</summary>
+      <returns>The first date to display.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.DisplayDateStartProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.DisplayDateStart" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.DisplayDateStart" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.DisplayMode">
+      <summary>Gets or sets a value indicating whether the calendar is displayed in months, years, or decades.</summary>
+      <returns>A value indicating what length of time the <see cref="T:System.Windows.Controls.Calendar" /> should display.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.Calendar.DisplayModeChanged">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.Calendar.DisplayMode" /> property is changed. </summary>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.DisplayModeProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.DisplayMode" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.DisplayMode" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.FirstDayOfWeek">
+      <summary>Gets or sets the day that is considered the beginning of the week.</summary>
+      <returns>A <see cref="T:System.DayOfWeek" /> representing the beginning of the week. The default is <see cref="F:System.DayOfWeek.Sunday" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.FirstDayOfWeekProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.FirstDayOfWeek" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.FirstDayOfWeek" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.IsTodayHighlighted">
+      <summary>Gets or sets a value indicating whether the current date is highlighted.</summary>
+      <returns>true if the current date is highlighted; otherwise, false. The default is true. </returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.IsTodayHighlightedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.IsTodayHighlighted" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.IsTodayHighlighted" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.Calendar.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.Calendar" /> when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Calendar.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.CalendarAutomationPeer" /> for the <see cref="T:System.Windows.Controls.Calendar" /> object.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.Calendar.OnMouseWheel(System.Windows.Input.MouseWheelEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseWheel" /> event</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseWheelEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.SelectedDate">
+      <summary>Gets or sets the currently selected date.</summary>
+      <returns>The date currently selected. The default is null.</returns>
+      <exception cref="T:System.ArgumentOutOfRangeException">The given date is outside the range specified by <see cref="P:System.Windows.Controls.Calendar.DisplayDateStart" /> and <see cref="P:System.Windows.Controls.Calendar.DisplayDateEnd" />-or-The given date is in the <see cref="P:System.Windows.Controls.Calendar.BlackoutDates" /> collection.</exception>
+      <exception cref="T:System.InvalidOperationException">If set to anything other than null when <see cref="P:System.Windows.Controls.Calendar.SelectionMode" /> is set to <see cref="F:System.Windows.Controls.CalendarSelectionMode.None" />.</exception>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.SelectedDateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.SelectedDate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.SelectedDate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.SelectedDates">
+      <summary>Gets a collection of selected dates.</summary>
+      <returns>A <see cref="T:System.Windows.Controls.SelectedDatesCollection" /> object that contains the currently selected dates. The default is an empty collection.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.Calendar.SelectedDatesChanged">
+      <summary>Occurs when the collection returned by the <see cref="P:System.Windows.Controls.Calendar.SelectedDates" /> property is changed. </summary>
+    </member>
+    <member name="P:System.Windows.Controls.Calendar.SelectionMode">
+      <summary>Gets or sets a value that indicates what kind of selections are allowed.</summary>
+      <returns>A value that indicates the current selection mode. The default is <see cref="F:System.Windows.Controls.CalendarSelectionMode.SingleDate" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Calendar.SelectionModeProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.Calendar.SelectionMode" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.Calendar.SelectionMode" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.Calendar.ToString">
+      <summary>Provides a text representation of the selected date.</summary>
+      <returns>A text representation of the selected date, or an empty string if <see cref="P:System.Windows.Controls.Calendar.SelectedDate" /> is null.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarBlackoutDatesCollection">
+      <summary>Represents a collection of non-selectable dates in a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarBlackoutDatesCollection.#ctor(System.Windows.Controls.Calendar)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.CalendarBlackoutDatesCollection" /> class. </summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.Calendar" /> whose dates this object represents.</param>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarBlackoutDatesCollection.AddDatesInPast">
+      <summary>Adds all dates before <see cref="P:System.DateTime.Today" /> to the collection.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarBlackoutDatesCollection.Contains(System.DateTime)">
+      <summary>Returns a value that represents whether this collection contains the specified date.</summary>
+      <returns>true if the collection contains the specified date; otherwise, false.</returns>
+      <param name="date">The date to search for.</param>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarBlackoutDatesCollection.Contains(System.DateTime,System.DateTime)">
+      <summary>Returns a value that represents whether this collection contains the specified range of dates.</summary>
+      <returns>true if all dates in the range are contained in the collection; otherwise, false.</returns>
+      <param name="start">The start of the date range.</param>
+      <param name="end">The end of the date range.</param>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarBlackoutDatesCollection.ContainsAny(System.Windows.Controls.CalendarDateRange)">
+      <summary>Returns a value that represents whether this collection contains any date in the specified range.</summary>
+      <returns>true if any date in the range is contained in the collection; otherwise, false.</returns>
+      <param name="range">The range of dates to search for.</param>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarDateChangedEventArgs">
+      <summary>Provides data for the <see cref="E:System.Windows.Controls.Calendar.DisplayDateChanged" /> event. </summary>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarDateChangedEventArgs.AddedDate">
+      <summary>Gets or sets the date to be newly displayed.</summary>
+      <returns>The new date to display.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarDateChangedEventArgs.RemovedDate">
+      <summary>Getsor sets the date that was previously displayed.</summary>
+      <returns>The date previously displayed. </returns>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarDateRange">
+      <summary>Represents a range of dates in a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarDateRange.#ctor(System.DateTime)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.CalendarDateRange" /> class with a single date.</summary>
+      <param name="day">The date to be represented by the range.</param>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarDateRange.#ctor(System.DateTime,System.DateTime)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.CalendarDateRange" /> class with a range of dates.</summary>
+      <param name="start">The start of the range to be represented.</param>
+      <param name="end">The end of the range to be represented.</param>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarDateRange.End">
+      <summary>Gets the last date in the represented range.</summary>
+      <returns>The last date in the represented range.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarDateRange.Start">
+      <summary>Gets the first date in the represented range.</summary>
+      <returns>The first date in the represented range.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarMode">
+      <summary>Specifies values for the different modes of operation of a <see cref="T:System.Windows.Controls.Calendar" />. </summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarMode.Month">
+      <summary>The <see cref="T:System.Windows.Controls.Calendar" /> displays a month at a time.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarMode.Year">
+      <summary>The <see cref="T:System.Windows.Controls.Calendar" /> displays a year at a time.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarMode.Decade">
+      <summary>The <see cref="T:System.Windows.Controls.Calendar" /> displays a decade at a time.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarModeChangedEventArgs">
+      <summary>Provides data for the <see cref="E:System.Windows.Controls.Calendar.DisplayModeChanged" /> event. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.CalendarModeChangedEventArgs.#ctor(System.Windows.Controls.CalendarMode,System.Windows.Controls.CalendarMode)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.CalendarModeChangedEventArgs" /> class. </summary>
+      <param name="oldMode">The previous mode.</param>
+      <param name="newMode">The new mode.</param>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarModeChangedEventArgs.NewMode">
+      <summary>Gets the new mode of the <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+      <returns>A <see cref="T:System.Windows.Controls.CalendarMode" /> representing the new mode. </returns>
+    </member>
+    <member name="P:System.Windows.Controls.CalendarModeChangedEventArgs.OldMode">
+      <summary>Gets the previous mode of the <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+      <returns>A <see cref="T:System.Windows.Controls.CalendarMode" /> representing the previous mode. </returns>
+    </member>
+    <member name="T:System.Windows.Controls.CalendarSelectionMode">
+      <summary>Specifies values that describe the available selection modes for a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarSelectionMode.SingleDate">
+      <summary>Only a single date can be selected. Use the <see cref="P:System.Windows.Controls.Calendar.SelectedDate" /> property to retrieve the selected date.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarSelectionMode.SingleRange">
+      <summary>A single range of dates can be selected. Use the <see cref="P:System.Windows.Controls.Calendar.SelectedDates" /> property to retrieve the selected dates.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarSelectionMode.MultipleRange">
+      <summary>Multiple non-contiguous ranges of dates can be selected. Use the <see cref="P:System.Windows.Controls.Calendar.SelectedDates" /> property to retrieve the selected dates.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.CalendarSelectionMode.None">
+      <summary>No selections are allowed.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.ChildWindow">
+      <summary>Provides a window that can be displayed over a parent window and blocks interaction with the parent window.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.ChildWindow" /> class.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.Close">
+      <summary>Closes a <see cref="T:System.Windows.Controls.ChildWindow" />.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.ChildWindow.Closed">
+      <summary>Occurs when the <see cref="T:System.Windows.Controls.ChildWindow" /> is closed.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.ChildWindow.Closing">
+      <summary>Occurs when the <see cref="T:System.Windows.Controls.ChildWindow" /> is closing.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.ChildWindow.DialogResult">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Windows.Controls.ChildWindow" /> was accepted or canceled.</summary>
+      <returns>true if the child window was accepted; false if the child window was canceled. The default is null.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.ChildWindow.HasCloseButton">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Windows.Controls.ChildWindow" /> has a close button.</summary>
+      <returns>true if the child window has a close button; otherwise, false. The default is true.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.ChildWindow.HasCloseButtonProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.ChildWindow.HasCloseButton" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.ChildWindow.HasCloseButton" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.ChildWindow" /> control when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.OnClosed(System.EventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.ChildWindow.Closed" /> event.</summary>
+      <param name="e">The event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.OnClosing(System.ComponentModel.CancelEventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.ChildWindow.Closing" /> event.</summary>
+      <param name="e">The event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>
+        <see cref="T:System.Windows.Automation.Peers.ChildWindowAutomationPeer" /> for the <see cref="T:System.Windows.Controls.ChildWindow" /> object.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.OnOpened">
+      <summary>This method is called every time a <see cref="T:System.Windows.Controls.ChildWindow" /> is displayed.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.ChildWindow.OverlayBrush">
+      <summary>Gets or sets the visual brush that is used to cover the parent window when the child window is open.</summary>
+      <returns>The visual brush that is used to cover the parent window when the <see cref="T:System.Windows.Controls.ChildWindow" /> is open. The default is null.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.ChildWindow.OverlayBrushProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.ChildWindow.OverlayBrush" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.ChildWindow.OverlayBrush" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.ChildWindow.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>
+      <returns>The opacity of the overlay brush that is used to cover the parent window when the <see cref="T:System.Windows.Controls.ChildWindow" /> is open. The default is 1.0.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.ChildWindow.OverlayOpacityProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.ChildWindow.OverlayOpacity" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.ChildWindow.OverlayOpacity" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.ChildWindow.Show">
+      <summary>Opens a <see cref="T:System.Windows.Controls.ChildWindow" /> and returns without waiting for the <see cref="T:System.Windows.Controls.ChildWindow" /> to close.</summary>
+      <exception cref="T:System.InvalidOperationException">The child window is already in the visual tree.</exception>
+    </member>
+    <member name="P:System.Windows.Controls.ChildWindow.Title">
+      <summary>Gets or sets the title of the <see cref="T:System.Windows.Controls.ChildWindow" />.</summary>
+      <returns>The title of the child window. The default is null.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.ChildWindow.TitleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.ChildWindow.Title" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.ChildWindow.Title" /> dependency property.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.DatePicker">
+      <summary>Represents a control that allows the user to select a date.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.DatePicker" /> class. </summary>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.BlackoutDates">
+      <summary>Gets or sets a collection of dates that are marked as not selectable.</summary>
+      <returns>A collection of dates that cannot be selected. The default value is an empty collection.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.DatePicker.CalendarClosed">
+      <summary>Occurs when the drop-down <see cref="T:System.Windows.Controls.Calendar" /> is closed.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.DatePicker.CalendarOpened">
+      <summary>Occurs when the drop-down <see cref="T:System.Windows.Controls.Calendar" /> is opened.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.CalendarStyle">
+      <summary>Gets or sets the style that is used when rendering the calendar.</summary>
+      <returns>The style that is used when rendering the calendar.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.CalendarStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.CalendarStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.CalendarStyle" /> dependency property.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.DatePicker.DateValidationError">
+      <summary>Occurs when <see cref="P:System.Windows.Controls.DatePicker.Text" /> is assigned a value that cannot be interpreted as a date.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.DisplayDate">
+      <summary>Gets or sets the date to display.</summary>
+      <returns>The date to display. The default is <see cref="P:System.DateTime.Today" />.</returns>
+      <exception cref="T:System.ArgumentOutOfRangeException">The specified date is not in the range defined by <see cref="P:System.Windows.Controls.DatePicker.DisplayDateStart" />. and <see cref="P:System.Windows.Controls.DatePicker.DisplayDateEnd" />.</exception>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.DisplayDateEnd">
+      <summary>Gets or sets the last date to be displayed.</summary>
+      <returns>The last date to display.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.DisplayDateEndProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.DisplayDateEnd" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.DisplayDateEnd" /> dependency property.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.DisplayDateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.DisplayDate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.DisplayDate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.DisplayDateStart">
+      <summary>Gets or sets the first date to be displayed.</summary>
+      <returns>The first date to display.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.DisplayDateStartProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.DisplayDateStart" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.DisplayDateStart" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.FirstDayOfWeek">
+      <summary>Gets or sets the day that is considered the beginning of the week.</summary>
+      <returns>A <see cref="T:System.DayOfWeek" /> representing the beginning of the week. The default is <see cref="F:System.DayOfWeek.Sunday" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.FirstDayOfWeekProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.FirstDayOfWeek" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.FirstDayOfWeek" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.IsDropDownOpen">
+      <summary>Gets or sets a value that indicates whether the drop-down <see cref="T:System.Windows.Controls.Calendar" /> is open or closed.</summary>
+      <returns>true if the <see cref="T:System.Windows.Controls.Calendar" /> is open; otherwise, false. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.IsDropDownOpenProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.IsDropDownOpen" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.IsDropDownOpen" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.IsTodayHighlighted">
+      <summary>Gets or sets a value that indicates whether the current date will be highlighted.</summary>
+      <returns>true if the current date is highlighted; otherwise, false. The default is true. </returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.IsTodayHighlightedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.IsTodayHighlighted" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.IsTodayHighlighted" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.DatePicker" /> control when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.DatePickerAutomationPeer" /> for the <see cref="T:System.Windows.Controls.DatePicker" /> object.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.OnDateValidationError(System.Windows.Controls.DatePickerDateValidationErrorEventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Controls.DatePickerDateValidationErrorEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.OnMouseWheel(System.Windows.Input.MouseWheelEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseWheel" /> event.</summary>
+      <param name="e">A <see cref="System.Windows.Input.MouseWheelEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.SelectedDate">
+      <summary>Gets or sets the currently selected date.</summary>
+      <returns>The date currently selected. The default is null.</returns>
+      <exception cref="T:System.ArgumentOutOfRangeException">The specified date is not in the range defined by <see cref="P:System.Windows.Controls.DatePicker.DisplayDateStart" /> and <see cref="P:System.Windows.Controls.DatePicker.DisplayDateEnd" />, or the specified date is in the <see cref="P:System.Windows.Controls.DatePicker.BlackoutDates" /> collection. </exception>
+    </member>
+    <member name="E:System.Windows.Controls.DatePicker.SelectedDateChanged">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.DatePicker.SelectedDate" /> property is changed.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.SelectedDateFormat">
+      <summary>Gets or sets the format that is used to display the selected date.</summary>
+      <returns>The format that is used to display the selected date. The default is <see cref="F:System.Windows.Controls.DatePickerFormat.Short" />.</returns>
+      <exception cref="T:System.ArgumentOutOfRangeException">The specified format is not valid.</exception>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.SelectedDateFormatProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.SelectedDateFormat" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.SelectedDateFormat" /> dependency property.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.SelectedDateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.SelectedDate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.SelectedDate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.SelectionBackground">
+      <summary>Gets or sets the background used for selected dates.</summary>
+      <returns>The background used for selected dates.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.SelectionBackgroundProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.SelectionBackground" /> dependency property. </summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.SelectionBackground" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePicker.Text">
+      <summary>Gets the text that is displayed by the <see cref="T:System.Windows.Controls.DatePicker" />, or sets the selected date.</summary>
+      <returns>The text displayed by the <see cref="T:System.Windows.Controls.DatePicker" />.</returns>
+      <exception cref="T:System.FormatException">The text entered cannot be parsed to a valid date, and the exception is not suppressed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The text entered parses to a date that is not selectable.</exception>
+    </member>
+    <member name="F:System.Windows.Controls.DatePicker.TextProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.DatePicker.Text" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.DatePicker.Text" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.DatePicker.ToString"></member>
+    <member name="T:System.Windows.Controls.DatePickerDateValidationErrorEventArgs">
+      <summary>Provides data for the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.#ctor(System.Exception,System.String)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.DatePickerDateValidationErrorEventArgs" /> class. </summary>
+      <param name="exception">The initial exception from the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</param>
+      <param name="text">The text that caused the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</param>
+    </member>
+    <member name="P:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.Exception">
+      <summary>Gets or sets the initial exception associated with the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</summary>
+      <returns>The exception associated with the validation failure.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.Text">
+      <summary>Gets or sets the text that caused the <see cref="E:System.Windows.Controls.DatePicker.DateValidationError" /> event.</summary>
+      <returns>The text that caused the validation failure.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.ThrowException">
+      <summary>Gets or sets a value that indicates whether <see cref="P:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.Exception" /> should be thrown.</summary>
+      <returns>true if the exception should be thrown; otherwise, false.</returns>
+      <exception cref="T:System.ArgumentException">If set to true and <see cref="P:System.Windows.Controls.DatePickerDateValidationErrorEventArgs.Exception" /> is null.</exception>
+    </member>
+    <member name="T:System.Windows.Controls.DatePickerFormat">
+      <summary>Specifies date formats for a <see cref="T:System.Windows.Controls.DatePicker" />.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.DatePickerFormat.Long">
+      <summary>Specifies that the date should be displayed using unabbreviated days of the week and month names.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.DatePickerFormat.Short">
+      <summary>Specifies that the date should be displayed using abbreviated days of the week and month names.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.DateTimeTypeConverter">
+      <summary>Provides a converter to convert <see cref="T:System.DateTime" /> objects to and from other representations.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.DateTimeTypeConverter.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.DateTimeTypeConverter" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.DateTimeTypeConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
+      <summary>Gets a value that indicates whether it is possible to convert the specified type to a <see cref="T:System.DateTime" /> with the specified format context.</summary>
+      <returns>true if the conversion is possible; otherwise, false.</returns>
+      <param name="context">The format context that is used to convert the specified type.</param>
+      <param name="sourceType">The type to convert.</param>
+    </member>
+    <member name="M:System.Windows.Controls.DateTimeTypeConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
+      <summary>Gets a value that indicates whether it is possible to convert a <see cref="T:System.DateTime" /> to the specified type within the specified format context.</summary>
+      <returns>true if the conversion is possible; otherwise, false.</returns>
+      <param name="context">The format context that is used to convert.</param>
+      <param name="destinationType">The type to convert to.</param>
+    </member>
+    <member name="M:System.Windows.Controls.DateTimeTypeConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
+      <summary>Converts the specified object to a <see cref="T:System.DateTime" /> with the specified culture with the specified format context.</summary>
+      <returns>A <see cref="T:System.DateTime" /> object that represents <paramref name="value" />.</returns>
+      <param name="context">The format context that is used to convert the specified type.</param>
+      <param name="culture">The culture to use for the result.</param>
+      <param name="value">The value to convert.</param>
+      <exception cref="T:System.FormatException">The conversion cannot be performed.</exception>
+    </member>
+    <member name="M:System.Windows.Controls.DateTimeTypeConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
+      <summary>Converts a <see cref="T:System.DateTime" /> with the specified culture to the specified object with the specified format context.</summary>
+      <returns>An object of the specified type that represents <paramref name="value" />.</returns>
+      <param name="context">The format context that is used to convert to the specified type.</param>
+      <param name="culture">The culture to use for the converting date.</param>
+      <param name="value">The date to convert.</param>
+      <param name="destinationType">The type to convert to.</param>
+    </member>
+    <member name="T:System.Windows.Controls.Dock">
+      <summary>Specifies values that control the behavior of a control positioned inside another control.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.Dock.Left">
+      <summary>Specifies that the control should be positioned on the left of the control.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.Dock.Top">
+      <summary>Specifies that the control should be positioned on top of the control.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.Dock.Right">
+      <summary>Specifies that the control should be positioned on the right of the control.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.Dock.Bottom">
+      <summary>Specifies that the control should be positioned at the bottom of the control.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.GridSplitter">
+      <summary>Represents a control that redistributes space between the rows of columns of a <see cref="T:System.Windows.Controls.Grid" /> control.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.GridSplitter.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.GridSplitter" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.GridSplitter.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.GridSplitter" /> control when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.GridSplitter.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.GridSplitterAutomationPeer" /> for the <see cref="T:System.Windows.Controls.GridSplitter" /> object.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.GridSplitter.PreviewStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> that is used for previewing changes.</summary>
+      <returns>The style that is used to preview changes.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.GridSplitter.PreviewStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.GridSplitter.PreviewStyle" /> dependency property.</summary>
+      <returns>An identifier for the <see cref="P:System.Windows.Controls.GridSplitter.PreviewStyle" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.GridSplitter.ShowsPreview">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Windows.Controls.GridSplitter" /> control updates the column or row size as the user drags the control with the mouse.</summary>
+      <returns>true if a preview is displayed; otherwise, false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.GridSplitter.ShowsPreviewProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.GridSplitter.ShowsPreview" /> dependency property.</summary>
+      <returns>An identifier for the <see cref="P:System.Windows.Controls.GridSplitter.ShowsPreview" /> dependency property.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.HeaderedItemsControl">
+      <summary>Represents a control that contains a header and collection of items.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.HeaderedItemsControl.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.HeaderedItemsControl" /> class.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.HeaderedItemsControl.Header">
+      <summary>Gets or sets the item that labels the control. </summary>
+      <returns>The item that labels the control. The default value is null. </returns>
+    </member>
+    <member name="F:System.Windows.Controls.HeaderedItemsControl.HeaderProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate">
+      <summary>Gets or sets a data template that is used to display the contents of the control's <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" />.</summary>
+      <returns>Gets or sets a data template that is used to display the contents of the control's header. The default is null.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.HeaderedItemsControl.HeaderTemplateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.HeaderedItemsControl.ItemContainerStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> that is applied to the container element generated for each item.</summary>
+      <returns>The <see cref="T:System.Windows.Style" /> that is applied to the container element generated for each item. The default is null.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.HeaderedItemsControl.ItemContainerStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.HeaderedItemsControl.ItemContainerStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.HeaderedItemsControl.ItemContainerStyle" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.HeaderedItemsControl.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.HeaderedItemsControl" /> when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.HeaderedItemsControl.OnHeaderChanged(System.Object,System.Object)">
+      <summary>Called when the value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" /> property changes.</summary>
+      <param name="oldHeader">The old value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" /> property.</param>
+      <param name="newHeader">The new value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.Header" /> property.</param>
+    </member>
+    <member name="M:System.Windows.Controls.HeaderedItemsControl.OnHeaderTemplateChanged(System.Windows.DataTemplate,System.Windows.DataTemplate)">
+      <summary>Called when the value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate" /> property changes.</summary>
+      <param name="oldHeaderTemplate">The old value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate" /> property.</param>
+      <param name="newHeaderTemplate">The new value of the <see cref="P:System.Windows.Controls.HeaderedItemsControl.HeaderTemplate" /> property.</param>
+    </member>
+    <member name="M:System.Windows.Controls.HeaderedItemsControl.PrepareContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
+      <summary>Prepares the specified element to display the specified item.</summary>
+      <param name="element">The container element used to display the specified item.</param>
+      <param name="item">The content to display.</param>
+    </member>
+    <member name="T:System.Windows.Controls.RoutedPropertyChangingEventArgs`1">
+      <summary>Provides event data for various routed events that track property values changing. Typically the events denote a cancellable action.</summary>
+      <typeparam name="T">The type of the value for the dependency property that is changing.</typeparam>
+    </member>
+    <member name="M:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.#ctor(System.Windows.DependencyProperty,`0,`0,System.Boolean)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.RoutedPropertyChangingEventArgs`1" /> class,</summary>
+      <param name="property">The <see cref="T:System.Windows.DependencyProperty" /> identifier for the property that is changing.</param>
+      <param name="oldValue">The previous value of the property.</param>
+      <param name="newValue">The new value of the property, assuming that the property change is not cancelled.</param>
+      <param name="isCancelable">true if the property change is cancellable by setting <see cref="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.Cancel" /> to true in event handling. false if the property change is not cancellable.</param>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.Cancel">
+      <summary>Gets or sets a value that determines whether the property change that originated the RoutedPropertyChanging event should be cancelled.</summary>
+      <returns>true to cancel the property change; this resets the property to <see cref="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.OldValue" />. false to not cancel the property change; the value changes to <see cref="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.NewValue" />.</returns>
+      <exception cref="T:System.InvalidOperationException">Attempted to cancel in an instance where <see cref="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.IsCancelable" /> is false.</exception>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.InCoercion">
+      <summary>Gets or sets a value indicating whether internal value coercion is acting on the property change that originated the RoutedPropertyChanging event.</summary>
+      <returns>true if coercion is active. false if coercion is not active.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.IsCancelable">
+      <summary>Gets a value indicating whether the property change that originated the RoutedPropertyChanging event is cancellable.</summary>
+      <returns>true if the property change is cancellable. false if the property change is not cancellable.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.NewValue">
+      <summary>Gets a value that reports the new value of the changing property, assuming that the property change is not cancelled.</summary>
+      <returns>The new value of the changing property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.OldValue">
+      <summary>Gets a value that reports the previous value of the changing property.</summary>
+      <returns>The previous value of the changing property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.RoutedPropertyChangingEventArgs`1.Property">
+      <summary>Gets the <see cref="T:System.Windows.DependencyProperty" /> identifier for the property that is changing.</summary>
+      <returns>The <see cref="T:System.Windows.DependencyProperty" /> identifier for the property that is changing.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.RoutedPropertyChangingEventHandler`1">
+      <summary>Represents methods that handle various routed events that track property values changing. Typically the events denote a cancellable action.</summary>
+      <param name="sender">The object where the initiating property is changing.</param>
+      <param name="e">Event data for the event,</param>
+      <typeparam name="T">The type of the value for the dependency property that is changing.</typeparam>
+    </member>
+    <member name="T:System.Windows.Controls.SelectedDatesCollection">
+      <summary>Represents a set of selected dates in a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.SelectedDatesCollection.#ctor(System.Windows.Controls.Calendar)">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.SelectedDatesCollection" /> class. </summary>
+      <param name="owner">The <see cref="T:System.Windows.Controls.Calendar" /> associated with this object.</param>
+    </member>
+    <member name="M:System.Windows.Controls.SelectedDatesCollection.AddRange(System.DateTime,System.DateTime)">
+      <summary>Adds all the dates in the specified range, which includes the first and last dates, to the collection.</summary>
+      <param name="start">The first date to add to the collection.</param>
+      <param name="end">The last date to add to the collection.</param>
+    </member>
+    <member name="T:System.Windows.Controls.TabControl">
+      <summary>Represents a control that contains multiple items that share the same space on the screen.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.TabControl" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.TabControl" /> when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.TabControlAutomationPeer" /> for the <see cref="T:System.Windows.Controls.TabControl" /> object.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+      <param name="e">Data used by the event.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.OnKeyDown(System.Windows.Input.KeyEventArgs)">
+      <param name="e">Data used by the event.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabControl.OnSelectionChanged(System.Windows.Controls.SelectionChangedEventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.TabControl.SelectionChanged" /> event.</summary>
+      <param name="args">Provides data for the <see cref="E:System.Windows.Controls.TabControl.SelectionChanged" /> event.</param>
+    </member>
+    <member name="P:System.Windows.Controls.TabControl.SelectedContent">
+      <summary>Gets the content of the currently selected <see cref="T:System.Windows.Controls.TabItem" />.</summary>
+      <returns>The content of the currently selected <see cref="T:System.Windows.Controls.TabItem" />. The default is null.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabControl.SelectedContentProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabControl.SelectedContent" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabControl.SelectedContent" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabControl.SelectedIndex">
+      <summary>Gets or sets the index of the currently selected <see cref="T:System.Windows.Controls.TabItem" />.</summary>
+      <returns>The index of the currently selected <see cref="T:System.Windows.Controls.TabItem" />, or -1 if a <see cref="T:System.Windows.Controls.TabItem" /> is not selected.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabControl.SelectedIndexProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabControl.SelectedIndex" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabControl.SelectedIndex" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabControl.SelectedItem">
+      <summary>Gets or sets the currently selected <see cref="T:System.Windows.Controls.TabItem" />.</summary>
+      <returns>The currently selected <see cref="T:System.Windows.Controls.TabItem" />, or null if a <see cref="T:System.Windows.Controls.TabItem" /> is not selected.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabControl.SelectedItemProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabControl.SelectedItem" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabControl.SelectedItem" /> dependency property.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.TabControl.SelectionChanged">
+      <summary>Occurs when the selected <see cref="T:System.Windows.Controls.TabItem" /> changes.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.TabControl.TabStripPlacement">
+      <summary>Gets or sets how <see cref="T:System.Windows.Controls.TabItem" /> headers align relative to the <see cref="T:System.Windows.Controls.TabItem" /> content.</summary>
+      <returns>The alignment of <see cref="T:System.Windows.Controls.TabItem" /> headers relative to the <see cref="T:System.Windows.Controls.TabItem" /> content. The default is <see cref="F:System.Windows.Controls.Dock.Top" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabControl.TabStripPlacementProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabControl.TabStripPlacement" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabControl.TabStripPlacement" /> dependency property.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.TabItem">
+      <summary>Represents a selectable item in a <see cref="T:System.Windows.Controls.TabControl" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.TabItem" /> class. </summary>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.HasHeader">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Windows.Controls.TabItem" /> has a header.</summary>
+      <returns>true if <see cref="P:System.Windows.Controls.TabItem.Header" /> is not null; otherwise, false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabItem.HasHeaderProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabItem.HasHeader" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabItem.HasHeader" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.Header">
+      <summary>Gets or sets the header of the <see cref="T:System.Windows.Controls.TabItem" />.</summary>
+      <returns>The current header of the <see cref="T:System.Windows.Controls.TabItem" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabItem.HeaderProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabItem.Header" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabItem.Header" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.HeaderTemplate">
+      <summary>Gets or sets the template that is used to display the content of the <see cref="T:System.Windows.Controls.TabItem" /> header.</summary>
+      <returns>The current template that is used to display <see cref="T:System.Windows.Controls.TabItem" /> header content.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabItem.HeaderTemplateProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabItem.HeaderTemplate" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabItem.HeaderTemplate" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.IsFocused">
+      <summary>Gets a value indicating whether the <see cref="T:System.Windows.Controls.TabItem" /> has focus.</summary>
+      <returns>true if the <see cref="T:System.Windows.Controls.TabItem" /> has focus; otherwise, false. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabItem.IsFocusedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabItem.IsFocused" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabItem.IsFocused" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.IsSelected">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Windows.Controls.TabItem" /> is currently selected.</summary>
+      <returns>true if the <see cref="T:System.Windows.Controls.TabItem" /> is selected; otherwise, false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TabItem.IsSelectedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TabItem.IsSelected" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TabItem.IsSelected" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.TabItem" /> when a new template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnContentChanged(System.Object,System.Object)">
+      <param name="oldContent">The previous <see cref="T:System.Windows.Controls.TabItem" /> content.</param>
+      <param name="newContent">The new <see cref="T:System.Windows.Controls.TabItem" /> content.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnCreateAutomationPeer">
+      <summary>Creates and returns an <see cref="T:System.Windows.Automation.Peers.AutomationPeer" /> for this <see cref="T:System.Windows.Controls.TabItem" />.</summary>
+      <returns>An automation peer for this <see cref="T:System.Windows.Controls.TabItem" />.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnHeaderChanged(System.Object,System.Object)">
+      <summary>Called when the <see cref="P:System.Windows.Controls.TabItem.Header" /> property changes.</summary>
+      <param name="oldHeader">The previous value of the <see cref="P:System.Windows.Controls.TabItem.Header" /> property.</param>
+      <param name="newHeader">The new value of the <see cref="P:System.Windows.Controls.TabItem.Header" /> property.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnHeaderTemplateChanged(System.Windows.DataTemplate,System.Windows.DataTemplate)">
+      <summary>Called when the <see cref="P:System.Windows.Controls.TabItem.HeaderTemplate" /> property changes.</summary>
+      <param name="oldHeaderTemplate">The previous value of the <see cref="P:System.Windows.Controls.TabItem.HeaderTemplate" /> property.</param>
+      <param name="newHeaderTemplate">The new value of the <see cref="P:System.Windows.Controls.TabItem.HeaderTemplate" /> property.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnIsFocusChanged(System.Windows.DependencyPropertyChangedEventArgs)">
+      <summary>Called when the value of the <see cref="P:System.Windows.Controls.TabItem.IsFocused" /> property changes.</summary>
+      <param name="e">A <see cref="T:System.Windows.DependencyPropertyChangedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnKeyDown(System.Windows.Input.KeyEventArgs)">
+      <param name="e">A <see cref="T:System.Windows.Input.KeyEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnSelected(System.Windows.RoutedEventArgs)">
+      <summary>Called to indicate that the <see cref="P:System.Windows.Controls.TabItem.IsSelected" /> property has changed to true.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data. </param>
+    </member>
+    <member name="M:System.Windows.Controls.TabItem.OnUnselected(System.Windows.RoutedEventArgs)">
+      <summary>Called to indicate that the <see cref="P:System.Windows.Controls.TabItem.IsSelected" /> property has changed to false.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data. </param>
+    </member>
+    <member name="P:System.Windows.Controls.TabItem.TabStripPlacement">
+      <summary>Gets the location of the tab strip relative to the <see cref="T:System.Windows.Controls.TabItem" /> content.</summary>
+      <returns>The location of the tab strip relative to the <see cref="T:System.Windows.Controls.TabItem" /> content.</returns>
+    </member>
+    <member name="T:System.Windows.Controls.TreeView">
+      <summary>Represents a control that displays hierarchical data in a tree structure that has items that can expand and collapse.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.TreeView" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.ClearContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
+      <summary>Removes all templates, styles, and bindings for the object displayed as a <see cref="T:System.Windows.Controls.TreeViewItem" />.</summary>
+      <param name="element">The <see cref="T:System.Windows.Controls.TreeViewItem" /> element to clear.</param>
+      <param name="item">The item that is contained in the <see cref="T:System.Windows.Controls.TreeViewItem" />.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.GetContainerForItemOverride">
+      <summary>Creates a <see cref="T:System.Windows.Controls.TreeViewItem" /> to display content.</summary>
+      <returns>A <see cref="T:System.Windows.Controls.TreeViewItem" /> to use as a container for content.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.IsItemItsOwnContainerOverride(System.Object)">
+      <summary>Determines whether the specified item is a <see cref="T:System.Windows.Controls.TreeViewItem" />, which is the default container for items in the <see cref="T:System.Windows.Controls.TreeView" /> control.</summary>
+      <returns>true if the item is a <see cref="T:System.Windows.Controls.TreeViewItem" />; otherwise, false,</returns>
+      <param name="item">The object to evaluate.</param>
+    </member>
+    <member name="P:System.Windows.Controls.TreeView.ItemContainerStyle">
+      <summary>Gets or sets the <see cref="T:System.Windows.Style" /> that is applied to the container element generated for each item.</summary>
+      <returns>The <see cref="T:System.Windows.Style" /> applied to the container element that contains each item.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeView.ItemContainerStyleProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeView.ItemContainerStyle" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeView.ItemContainerStyle" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.TreeView" /> control when a new control template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.TreeViewAutomationPeer" /> for the <see cref="T:System.Windows.Controls.TreeView" /> control.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnGotFocus(System.Windows.RoutedEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.GotFocus" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+      <summary>Makes adjustments to the <see cref="T:System.Windows.Controls.TreeView" /> control when the value of the <see cref="P:System.Windows.Controls.ItemsControl.Items" /> property changes.</summary>
+      <param name="e">A <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventArgs" /> that contains data about the change. </param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnKeyDown(System.Windows.Input.KeyEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.KeyDown" /> event when a key is pressed while the control has focus.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.KeyEventArgs" /> that contains the event data.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="e " />is null.</exception>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnKeyUp(System.Windows.Input.KeyEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.KeyUp" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.KeyEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnLostFocus(System.Windows.RoutedEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.LostFocus" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnMouseEnter(System.Windows.Input.MouseEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseEnter" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseEventArgs" /> that contains the event data. </param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnMouseLeave(System.Windows.Input.MouseEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeave" /> event.</summary>
+      <param name="e">
+        <see cref="T:System.Windows.Input.MouseEventArgs" />
+      </param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonDown" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonUp" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnMouseMove(System.Windows.Input.MouseEventArgs)">
+      <summary>Provided handling for the <see cref="E:System.Windows.UIElement.MouseMove" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.OnSelectedItemChanged(System.Windows.RoutedPropertyChangedEventArgs{System.Object})">
+      <summary>Raises the <see cref="E:System.Windows.Controls.TreeView.SelectedItemChanged" /> event when the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property value changes.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedPropertyChangedEventArgs`1" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeView.PrepareContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
+      <summary>Prepares the container element to display the specified item.</summary>
+      <param name="element">The container element used to display the specified item.</param>
+      <param name="item">The item to display.</param>
+    </member>
+    <member name="P:System.Windows.Controls.TreeView.SelectedItem">
+      <summary>Gets the selected item in a <see cref="T:System.Windows.Controls.TreeView" />.</summary>
+      <returns>The currently selected item or null if no item is selected. The default value is null.</returns>
+    </member>
+    <member name="E:System.Windows.Controls.TreeView.SelectedItemChanged">
+      <summary>Occurs when the value of the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property changes.</summary>
+    </member>
+    <member name="F:System.Windows.Controls.TreeView.SelectedItemProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TreeView.SelectedValue">
+      <summary>Gets the value of the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property that is specified by the <see cref="P:System.Windows.Controls.TreeView.SelectedValuePath" /> property.</summary>
+      <returns>The value of the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property that is specified by the <see cref="P:System.Windows.Controls.TreeView.SelectedValuePath" /> property, or null if no item is selected. The default value is null.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TreeView.SelectedValuePath">
+      <summary>Gets or sets the property path that is used to get the <see cref="P:System.Windows.Controls.TreeView.SelectedValue" /> property of the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property in a <see cref="T:System.Windows.Controls.TreeView" />.</summary>
+      <returns>The property path that is used to get the <see cref="P:System.Windows.Controls.TreeView.SelectedValue" /> property of the <see cref="P:System.Windows.Controls.TreeView.SelectedItem" /> property in a <see cref="T:System.Windows.Controls.TreeView" />. The default value is <see cref="F:System.String.Empty" />.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeView.SelectedValuePathProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeView.SelectedValuePath" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeView.SelectedValuePath" /> dependency property.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeView.SelectedValueProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeView.SelectedValue" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeView.SelectedValue" /> dependency property. </returns>
+    </member>
+    <member name="T:System.Windows.Controls.TreeViewItem">
+      <summary>Provides a hierarchical selectable item for the <see cref="T:System.Windows.Controls.TreeView" /> control.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.TreeViewItem" /> class.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.ClearContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
+      <summary>Removes all templates, styles, and bindings for the object displayed as a <see cref="T:System.Windows.Controls.TreeViewItem" />.</summary>
+      <param name="element">The <see cref="T:System.Windows.Controls.TreeViewItem" /> element to clear.</param>
+      <param name="item">The item that is contained in the <see cref="T:System.Windows.Controls.TreeViewItem" />.</param>
+    </member>
+    <member name="E:System.Windows.Controls.TreeViewItem.Collapsed">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> property changes from true to false.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.TreeViewItem.Expanded">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> property changes from false to true.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.GetContainerForItemOverride">
+      <summary>Creates a <see cref="T:System.Windows.Controls.TreeViewItem" /> to display content.</summary>
+      <returns>A <see cref="T:System.Windows.Controls.TreeViewItem" /> to use as a container for content.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TreeViewItem.HasItems">
+      <summary>Gets a value that indicates whether this <see cref="T:System.Windows.Controls.TreeViewItem" /> contains items.</summary>
+      <returns>true if this <see cref="T:System.Windows.Controls.TreeViewItem" /> contains items; otherwise, false. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeViewItem.HasItemsProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeViewItem.HasItems" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeViewItem.HasItems" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TreeViewItem.IsExpanded">
+      <summary>Gets or sets a value that indicates whether the <see cref="P:System.Windows.Controls.ItemsControl.Items" /> contained by this <see cref="T:System.Windows.Controls.TreeViewItem" /> are expanded or collapsed.</summary>
+      <returns>true to indicate the contents of the <see cref="P:System.Windows.Controls.ItemsControl.Items" /> collection are expanded; false to indicate the items are collapsed. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeViewItem.IsExpandedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.IsItemItsOwnContainerOverride(System.Object)">
+      <summary>Determines whether an object is a <see cref="T:System.Windows.Controls.TreeViewItem" />.</summary>
+      <returns>true if <paramref name="item" /> is a <see cref="T:System.Windows.Controls.TreeViewItem" />; otherwise, false.</returns>
+      <param name="item">The object to evaluate.</param>
+    </member>
+    <member name="P:System.Windows.Controls.TreeViewItem.IsSelected">
+      <summary>Gets or sets a value that indicates whether this <see cref="T:System.Windows.Controls.TreeViewItem" /> is selected.</summary>
+      <returns>true if this <see cref="T:System.Windows.Controls.TreeViewItem" /> is selected; otherwise, false. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeViewItem.IsSelectedProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> dependency property.</returns>
+    </member>
+    <member name="P:System.Windows.Controls.TreeViewItem.IsSelectionActive">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Windows.Controls.TreeViewItem" /> has focus.</summary>
+      <returns>true if this <see cref="T:System.Windows.Controls.TreeViewItem" /> has focus; otherwise, false. The default is false.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.TreeViewItem.IsSelectionActiveProperty">
+      <summary>Identifies the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelectionActive" /> dependency property.</summary>
+      <returns>The identifier for the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelectionActive" /> dependency property.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.TreeViewItem" /> control when a new control template is applied.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnCollapsed(System.Windows.RoutedEventArgs)">
+      <summary>Raises a <see cref="E:System.Windows.Controls.TreeViewItem.Collapsed" /> event when the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> property changes from true to false.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnCreateAutomationPeer">
+      <summary>Returns a <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" /> for use by the Silverlight automation infrastructure.</summary>
+      <returns>A <see cref="T:System.Windows.Automation.Peers.TreeViewItemAutomationPeer" /> object for the <see cref="T:System.Windows.Controls.TreeViewItem" />.</returns>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnExpanded(System.Windows.RoutedEventArgs)">
+      <summary>Raises an <see cref="E:System.Windows.Controls.TreeViewItem.Expanded" /> event when the <see cref="P:System.Windows.Controls.TreeViewItem.IsExpanded" /> property changes from false to true.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnGotFocus(System.Windows.RoutedEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.GotFocus" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs)">
+      <summary>Makes adjustments to the <see cref="T:System.Windows.Controls.TreeViewItem" /> when the value of the <see cref="P:System.Windows.Controls.ItemsControl.Items" /> property changes. </summary>
+      <param name="e">A <see cref="T:System.Collections.Specialized.NotifyCollectionChangedEventArgs" /> that contains data about the change.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnKeyDown(System.Windows.Input.KeyEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.KeyDown" /> event when the <see cref="T:System.Windows.Controls.TreeViewItem" /> has focus.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.KeyEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnKeyUp(System.Windows.Input.KeyEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.KeyUp" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.KeyEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnLostFocus(System.Windows.RoutedEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.LostFocus" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnMouseEnter(System.Windows.Input.MouseEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseEnter" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnMouseLeave(System.Windows.Input.MouseEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeave" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonDown" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs)">
+      <summary>Provides handling for the <see cref="E:System.Windows.UIElement.MouseLeftButtonUp" /> event.</summary>
+      <param name="e">A <see cref="T:System.Windows.Input.MouseButtonEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnSelected(System.Windows.RoutedEventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.TreeViewItem.Selected" /> event when the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> property changes from false to true.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.OnUnselected(System.Windows.RoutedEventArgs)">
+      <summary>Raises the <see cref="E:System.Windows.Controls.TreeViewItem.Unselected" /> event when the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> property changes from true to false.</summary>
+      <param name="e">A <see cref="T:System.Windows.RoutedEventArgs" /> that contains the event data.</param>
+    </member>
+    <member name="M:System.Windows.Controls.TreeViewItem.PrepareContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
+      <summary>Prepares the specified container element to display the specified item.</summary>
+      <param name="element">Container element used to display the specified item.</param>
+      <param name="item">The item to display.</param>
+    </member>
+    <member name="E:System.Windows.Controls.TreeViewItem.Selected">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> property of a <see cref="T:System.Windows.Controls.TreeViewItem" /> changes from false to true.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.TreeViewItem.Unselected">
+      <summary>Occurs when the <see cref="P:System.Windows.Controls.TreeViewItem.IsSelected" /> property of a <see cref="T:System.Windows.Controls.TreeViewItem" /> changes from true to false.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.Primitives.CalendarButton">
+      <summary>Represents a button on a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarButton.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> class. </summary>
+    </member>
+    <member name="E:System.Windows.Controls.Primitives.CalendarButton.CalendarButtonMouseDown">
+      <summary>Occurs when the left mouse button is pressed (or when the tip of the stylus touches the tablet) while the mouse pointer is over a <see cref="T:System.Windows.Controls.Primitives.CalendarButton" />.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.Primitives.CalendarButton.CalendarButtonMouseUp">
+      <summary>Occurs when the left mouse button is released while the mouse pointer is over a <see cref="T:System.Windows.Controls.Primitives.CalendarButton" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarButton.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.Primitives.CalendarButton" /> when a new template is applied.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.Primitives.CalendarDayButton">
+      <summary>Represents a day on a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarDayButton.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> class. </summary>
+    </member>
+    <member name="E:System.Windows.Controls.Primitives.CalendarDayButton.CalendarDayButtonMouseDown">
+      <summary>Occurs when the left mouse button is pressed (or when the tip of the stylus touches the tablet) while the mouse pointer is over a <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" />.</summary>
+    </member>
+    <member name="E:System.Windows.Controls.Primitives.CalendarDayButton.CalendarDayButtonMouseUp">
+      <summary>Occurs when the left mouse button is released while the mouse pointer is over a <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarDayButton.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.Primitives.CalendarDayButton" /> when a new template is applied.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.Primitives.CalendarItem">
+      <summary>Represents the currently displayed month or year on a <see cref="T:System.Windows.Controls.Calendar" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarItem.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Primitives.CalendarItem" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.CalendarItem.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.Primitives.CalendarItem" /> when a new template is applied.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.Primitives.DatePickerTextBox">
+      <summary>Represents the text input of a <see cref="T:System.Windows.Controls.DatePicker" />. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.DatePickerTextBox.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Primitives.DatePickerTextBox" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.DatePickerTextBox.OnApplyTemplate">
+      <summary>Builds the visual tree for the <see cref="T:System.Windows.Controls.Primitives.DatePickerTextBox" /> when a new template is applied.</summary>
+    </member>
+    <member name="P:System.Windows.Controls.Primitives.DatePickerTextBox.Watermark">
+      <summary>Gets or sets the content displayed as a watermark in the <see cref="T:System.Windows.Controls.Primitives.DatePickerTextBox" /> when it is empty.</summary>
+      <returns>The content displayed as a watermark in the <see cref="T:System.Windows.Controls.Primitives.DatePickerTextBox" /> when it is empty.</returns>
+    </member>
+    <member name="F:System.Windows.Controls.Primitives.DatePickerTextBox.WatermarkProperty">
+      <summary>Indentifies the <see cref="P:System.Windows.Controls.Primitives.DatePickerTextBox.Watermark" /> dependency property.</summary>
+    </member>
+    <member name="T:System.Windows.Controls.Primitives.TabPanel">
+      <summary>Handles the layout of <see cref="T:System.Windows.Controls.TabItem" /> objects on a <see cref="T:System.Windows.Controls.TabControl" />.</summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.TabPanel.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.Windows.Controls.Primitives.TabPanel" /> class. </summary>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.TabPanel.ArrangeOverride(System.Windows.Size)">
+      <summary>Arranges and sizes the content of a <see cref="T:System.Windows.Controls.Primitives.TabPanel" /> object.</summary>
+      <returns>The size of the arranged control.</returns>
+      <param name="finalSize">The size that a tab panel uses to position child elements.</param>
+    </member>
+    <member name="M:System.Windows.Controls.Primitives.TabPanel.MeasureOverride(System.Windows.Size)">
+      <summary>Called when remeasuring the control is required.</summary>
+      <returns>The measured size of the control.</returns>
+      <param name="availableSize">Constraint size as an upper limit. The return value should not exceed this size.</param>
+    </member>
+  </members>
+</doc>
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.dll
new file mode 100644 (file)
index 0000000..c5fd2ad
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.xml b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/System.Windows.Interactivity.xml
new file mode 100644 (file)
index 0000000..9feeaaf
--- /dev/null
@@ -0,0 +1,1025 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>System.Windows.Interactivity</name>
+    </assembly>
+    <members>
+        <member name="T:System.Windows.Interactivity.AttachableCollection`1">
+            <summary>
+            Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.IAttachedObject">
+            <summary>
+            An interface for an object that can be attached to another object.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.IAttachedObject.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.IAttachedObject.AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+            <remarks>Represents the object the instance is attached to.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.AttachableCollection`1"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemAdded(`0)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.ItemRemoved(`0)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.VerifyAdd(`0)">
+            <exception cref="T:System.InvalidOperationException">Cannot add the instance to a collection more than once.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The IAttachedObject is already attached to a different object.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.AttachableCollection`1.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.AssociatedObject">
+            <summary>
+            The object on which the collection is hosted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.AttachableCollection`1.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior`1">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <typeparam name="T">The type the <see cref="T:System.Windows.Interactivity.Behavior`1"/> can be attached to.</typeparam>
+            <remarks>
+               Behavior is the base class for providing attachable state and commands to an object.
+               The types the Behavior can be attached to can be controlled by the generic parameter.
+               Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers
+               from the AssociatedObject.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.Behavior">
+            <summary>
+            Encapsulates state information and zero or more ICommands into an attachable object.
+            </summary>
+            <remarks>This is an infrastructure class. Behavior authors should derive from Behavior&lt;T&gt; instead of from this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnAttached">
+            <summary>
+            Called after the behavior is attached to an AssociatedObject.
+            </summary>
+            <remarks>Override this to hook up functionality to the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.OnDetaching">
+            <summary>
+            Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+            <remarks>Override this to unhook functionality from the AssociatedObject.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">The Behavior is already hosted on a different element.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the Behavior type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedType">
+            <summary>
+            The type to which this behavior can be attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.AssociatedObject">
+            <summary>
+            Gets the object to which this behavior is attached.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.Behavior`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.Behavior`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.Behavior`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.Behavior`1"/> is attached.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.BehaviorCollection">
+            <summary>
+            Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemAdded(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.BehaviorCollection.ItemRemoved(System.Windows.Interactivity.Behavior)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditor">
+            <summary>
+            Enumerates possible values for reusable property value editors.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Element">
+            <summary>
+            Uses the element picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.Storyboard">
+            <summary>
+            Uses the storyboard picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.StateName">
+            <summary>
+            Uses the state picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.ElementBinding">
+            <summary>
+            Uses the element-binding picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.CustomPropertyValueEditor.PropertyBinding">
+            <summary>
+            Uses the property-binding picker, if supported, to edit this property at design time.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute">
+            <summary>
+            Associates the given editor type with the property on which the CustomPropertyValueEditor is applied.
+            </summary>
+            <remarks>Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name).</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.#ctor(System.Windows.Interactivity.CustomPropertyValueEditor)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.CustomPropertyValueEditorAttribute"/> class.
+            </summary>
+            <param name="customPropertyValueEditor">The custom property value editor.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.CustomPropertyValueEditorAttribute.CustomPropertyValueEditor">
+            <summary>
+            Gets or sets the custom property value editor.
+            </summary>
+            <value>The custom property value editor.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.DefaultTriggerAttribute">
+            <summary>
+            Provides design tools information about what <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate for a given action or command.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">A single argument for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+            <remarks>This constructor is useful if the specifed <see cref="T:System.Windows.Interactivity.TriggerBase"/> has a single argument. The
+            resulting code will be CLS compliant.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.#ctor(System.Type,System.Type,System.Object[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.DefaultTriggerAttribute"/> class.
+            </summary>
+            <param name="targetType">The type this attribute applies to.</param>
+            <param name="triggerType">The type of <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</param>
+            <param name="parameters">The constructor arguments for the specified <see cref="T:System.Windows.Interactivity.TriggerBase"/>.</param>
+            <exception cref="T:System.ArgumentException"><c cref="F:System.Windows.Interactivity.DefaultTriggerAttribute.triggerType"/> is not derived from TriggerBase.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.DefaultTriggerAttribute.Instantiate">
+            <summary>
+            Instantiates this instance.
+            </summary>
+            <returns>The <see cref="T:System.Windows.Interactivity.TriggerBase"/> specified by the DefaultTriggerAttribute.</returns>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TargetType">
+            <summary>
+            Gets the type that this DefaultTriggerAttribute applies to.
+            </summary>
+            <value>The type this DefaultTriggerAttribute applies to.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.TriggerType">
+            <summary>
+            Gets the type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.
+            </summary>
+            <value>The type of the <see cref="T:System.Windows.Interactivity.TriggerBase"/> to instantiate.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.DefaultTriggerAttribute.Parameters">
+            <summary>
+            Gets the parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.
+            </summary>
+            <value>The parameters to pass to the <see cref="T:System.Windows.Interactivity.TriggerBase"/> constructor.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.DependencyObjectHelper.GetSelfAndAncestors(System.Windows.DependencyObject)">
+            <summary>
+            This method will use the VisualTreeHelper.GetParent method to do a depth first walk up 
+            the visual tree and return all ancestors of the specified object, including the object itself.
+            </summary>
+            <param name="dependencyObject">The object in the visual tree to find ancestors of.</param>
+            <returns>Returns itself an all ancestors in the visual tree.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventObserver">
+            <summary>
+            EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventObserver.#ctor(System.Reflection.EventInfo,System.Object,System.Delegate)">
+            <summary>
+            Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach.
+            </summary>
+            <param name="eventInfo">The event to attach and detach from.</param>
+            <param name="target">The target object the event is defined on. Null if the method is static.</param>
+            <param name="handler">The delegate to attach to the event.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventObserver.Dispose">
+            <summary>
+            Detaches the handler from the event.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTrigger">
+            <summary>
+            A trigger that listens for a specified event on its source and fires when that event is fired.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase`1">
+            <summary>
+            Represents a trigger that can listen to an element other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type that this trigger can be associated with.</typeparam>
+            <remarks>
+               EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. 
+               This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a 
+               change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source 
+               element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be 
+               constrained by the generic type parameter. If you need control over the type of the 
+               AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.EventTriggerBase">
+            <summary>
+            Represents a trigger that can listen to an object other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from EventTriggerBase&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase">
+            <summary>
+            Represents an object that can invoke Actions conditionally.
+            </summary>
+            <remarks>This is an infrastructure class. Trigger authors should derive from Trigger&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.InvokeActions(System.Object)">
+            <summary>
+            Invoke all actions associated with this trigger.
+            </summary>
+            <remarks>Derived classes should call this to fire the trigger.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same trigger on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the trigger type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.Actions">
+            <summary>
+            Gets the actions associated with this trigger.
+            </summary>
+            <value>The actions associated with this trigger.</value>
+        </member>
+        <member name="E:System.Windows.Interactivity.TriggerBase.PreviewInvoke">
+            <summary>
+            Event handler for registering to PreviewInvoke.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.GetEventName">
+            <summary>
+            Specifies the name of the Event this EventTriggerBase is listening for.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnEvent(System.EventArgs)">
+            <summary>
+            Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger.
+            </summary>
+            <param name="eventArgs">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
+            <remarks>Override this to provide more granular control over when actions associated with this trigger will be invoked.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnSourceChangedImpl(System.Object,System.Object)">
+            <summary>
+            Called when the source changes.
+            </summary>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+            <remarks>This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnAttached">
+            <summary>
+            Called after the trigger is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.OnDetaching">
+            <summary>
+            Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase.RegisterEvent(System.Object,System.String)">
+            <exception cref="T:System.ArgumentException">Could not find eventName on the Target.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceTypeConstraint">
+            <summary>
+            Gets the source type constraint.
+            </summary>
+            <value>The source type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceObject">
+            <summary>
+            Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.SourceName">
+            <summary>
+            Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used.  This is a dependency property.
+            </summary>
+            <value>The name of the source element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is not set or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The element pointed to by <c cref="P:System.Windows.Interactivity.EventTriggerBase.Source"/> does not satisify the type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTriggerBase`1.OnSourceChanged(`0,`0)">
+            <summary>
+            Called when the source property changes.
+            </summary>
+            <remarks>Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject.</remarks>
+            <param name="oldSource">The old source.</param>
+            <param name="newSource">The new source.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTriggerBase`1.Source">
+            <summary>
+            Gets the resolved source. If <c ref="SourceName"/> is not set or cannot be resolved, defaults to AssociatedObject.
+            </summary>
+            <value>The resolved source object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.EventTrigger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.EventTrigger"/> class.
+            </summary>
+            <param name="eventName">Name of the event.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.EventTrigger.EventName">
+            <summary>
+            Gets or sets the name of the event to listen for. This is a dependency property.
+            </summary>
+            <value>The name of the event.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.Interaction">
+            <summary>
+            Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.TriggersProperty">
+            <summary>
+            This property is used as the internal backing store for the public Triggers attached property.
+            </summary>
+        </member>
+        <member name="F:System.Windows.Interactivity.Interaction.BehaviorsProperty">
+            <summary>
+            This property is used as the internal backing store for the public Behaviors attached property.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetTriggers(System.Windows.DependencyObject)">
+            <summary>
+            Gets the TriggerCollection containing the triggers associated with the specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the triggers.</param>
+            <returns>A TriggerCollection containing the triggers associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.GetBehaviors(System.Windows.DependencyObject)">
+            <summary>
+            Gets the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> associated with a specified object.
+            </summary>
+            <param name="obj">The object from which to retrieve the <see cref="T:System.Windows.Interactivity.BehaviorCollection"/>.</param>
+            <returns>A <see cref="T:System.Windows.Interactivity.BehaviorCollection"/> containing the behaviors associated with the specified object.</returns>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnBehaviorsChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same BehaviorCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.OnTriggersChanged(System.Windows.DependencyObject,System.Windows.DependencyPropertyChangedEventArgs)">
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerCollection on more than one object at a time.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.Interaction.IsElementLoaded(System.Windows.FrameworkElement)">
+            <summary>
+            A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight.
+            </summary>
+            <param name="element">The element of interest.</param>
+            <returns>True if the element has been loaded; otherwise, False.</returns>
+        </member>
+        <member name="T:System.Windows.Interactivity.InvokeCommandAction">
+            <summary>
+            Executes a specified ICommand when invoked.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction`1">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <typeparam name="T">The type to which this action can be attached.</typeparam>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerAction">
+            <summary>
+            Represents an attachable object that encapsulates a unit of functionality.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.CallInvoke(System.Object)">
+            <summary>
+            Attempts to invoke the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Attach(System.Windows.DependencyObject)">
+            <summary>
+            Attaches to the specified object.
+            </summary>
+            <param name="dependencyObject">The object to attach to.</param>
+            <exception cref="T:System.InvalidOperationException">Cannot host the same TriggerAction on more than one object at a time.</exception>
+            <exception cref="T:System.InvalidOperationException">dependencyObject does not satisfy the TriggerAction type constraint.</exception>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction.Detach">
+            <summary>
+            Detaches this instance from its associated object.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsEnabled">
+            <summary>
+            Gets or sets a value indicating whether this action will run when invoked. This is a dependency property.
+            </summary>
+            <value>
+               <c>True</c> if this action will be run when invoked; otherwise, <c>False</c>.
+            </value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObject">
+            <summary>
+            Gets the object to which this action is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.IsHosted">
+            <summary>
+            Gets or sets a value indicating whether this instance is attached.
+            </summary>
+            <value><c>True</c> if this instance is attached; otherwise, <c>False</c>.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction.System#Windows#Interactivity#IAttachedObject#AssociatedObject">
+            <summary>
+            Gets the associated object.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObject">
+            <summary>
+            Gets the object to which this <see cref="T:System.Windows.Interactivity.TriggerAction`1"/> is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerAction`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.InvokeCommandAction.Invoke(System.Object)">
+            <summary>
+            Invokes the action.
+            </summary>
+            <param name="parameter">The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandName">
+            <summary>
+            Gets or sets the name of the command this action should invoke.
+            </summary>
+            <value>The name of the command this action should invoke.</value>
+            <remarks>This property will be superseded by the Command property if both are set.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.Command">
+            <summary>
+            Gets or sets the command this action should invoke. This is a dependency property.
+            </summary>
+            <value>The command to execute.</value>
+            <remarks>This property will take precedence over the CommandName property if both are set.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.InvokeCommandAction.CommandParameter">
+            <summary>
+            Gets or sets the command parameter. This is a dependency property.
+            </summary>
+            <value>The command parameter.</value>
+            <remarks>This is the value passed to ICommand.CanExecute and ICommand.Execute.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolvedEventArgs">
+            <summary>
+            Provides data about which objects were affected when resolving a name change.
+            </summary>
+        </member>
+        <member name="T:System.Windows.Interactivity.NameResolver">
+            <summary>
+            Helper class to handle the logic of resolving a TargetName into a Target element
+            based on the context provided by a host element.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.NameResolver.UpdateObjectFromName(System.Windows.DependencyObject)">
+            <summary>
+            Attempts to update the resolved object from the name within the context of the namescope reference element.
+            </summary>
+            <param name="oldObject">The old resolved object.</param>
+            <remarks>
+            Resets the existing target and attempts to resolve the current TargetName from the
+            context of the current Host. If it cannot resolve from the context of the Host, it will
+            continue up the visual tree until it resolves. If it has not resolved it when it reaches
+            the root, it will set the Target to null and write a warning message to Debug output.
+            </remarks>
+        </member>
+        <member name="E:System.Windows.Interactivity.NameResolver.ResolvedElementChanged">
+            <summary>
+            Occurs when the resolved element has changed.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Name">
+            <summary>
+            Gets or sets the name of the element to attempt to resolve.
+            </summary>
+            <value>The name to attempt to resolve.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.Object">
+            <summary>
+            The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.NameScopeReferenceElement">
+            <summary>
+            Gets or sets the reference element from which to perform the name resolution.
+            </summary>
+            <value>The reference element.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.NameResolver.PendingReferenceElementLoad">
+            <summary>
+            Gets or sets a value indicating whether the reference element load is pending.
+            </summary>
+            <value>
+               <c>True</c> if [pending reference element load]; otherwise, <c>False</c>.
+            </value>
+            <remarks>
+            If the Host has not been loaded, the name will not be resolved.
+            In that case, delay the resolution and track that fact with this property.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction`1">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <typeparam name="T">The type constraint on the target.</typeparam>
+            <remarks>
+               TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. 
+               This allows a user to invoke the action on an element other than the one it is attached to in response to a 
+               trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching 
+               for the associated element. The type of the Target element can be constrained by the generic type parameter. If 
+               you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type.
+            </remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TargetedTriggerAction">
+            <summary>
+            Represents an action that can be targeted to affect an object other than its AssociatedObject.
+            </summary>
+            <remarks>This is an infrastructure class. Action authors should derive from TargetedTriggerAction&lt;T&gt; instead of this class.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnTargetChangedImpl(System.Object,System.Object)">
+            <summary>
+            Called when the target changes.
+            </summary>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+            <remarks>This function should be overriden in derived classes to hook and unhook functionality from the changing source objects.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnAttached">
+            <summary>
+            Called after the action is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction.OnDetaching">
+            <summary>
+            Called when the action is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetObject">
+            <summary>
+            Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetName">
+            <summary>
+            Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property.
+            </summary>
+            <value>The name of the target object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.Target">
+            <summary>
+            Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target object.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+            <exception cref="T:System.InvalidOperationException">The Target element does not satisfy the type constraint.</exception>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the associated object type constraint.
+            </summary>
+            <value>The associated object type constraint.</value>
+            <remarks>Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to.</remarks>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction.TargetTypeConstraint">
+            <summary>
+            Gets the target type constraint.
+            </summary>
+            <value>The target type constraint.</value>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TargetedTriggerAction`1"/> class.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TargetedTriggerAction`1.OnTargetChanged(`0,`0)">
+            <summary>
+            Called when the target property changes.
+            </summary>
+            <remarks>Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject.</remarks>
+            <param name="oldTarget">The old target.</param>
+            <param name="newTarget">The new target.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TargetedTriggerAction`1.Target">
+            <summary>
+            Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject.
+            </summary>
+            <value>The target.</value>
+            <remarks>In general, this property should be used in place of AssociatedObject in derived classes.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerActionCollection">
+            <summary>
+            Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerActionCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemAdded(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerActionCollection.ItemRemoved(System.Windows.Interactivity.TriggerAction)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerBase`1">
+            <summary>
+            Represents an object that can invoke actions conditionally.
+            </summary>
+            <typeparam name="T">The type to which this trigger can be attached.</typeparam>
+            <remarks>
+               TriggerBase is the base class for controlling actions. Override OnAttached() and 
+               OnDetaching() to hook and unhook handlers on the AssociatedObject. You may 
+               constrain the types that a derived TriggerBase may be attached to by specifying 
+               the generic parameter. Call InvokeActions() to fire all Actions associated with 
+               this TriggerBase.
+            </remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerBase`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerBase`1"/> class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObject">
+            <summary>
+            Gets the object to which the trigger is attached.
+            </summary>
+            <value>The associated object.</value>
+        </member>
+        <member name="P:System.Windows.Interactivity.TriggerBase`1.AssociatedObjectTypeConstraint">
+            <summary>
+            Gets the type constraint of the associated object.
+            </summary>
+            <value>The associated object type constraint.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.PreviewInvokeEventArgs">
+            <summary>
+            Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger.
+            </summary>
+            <remarks>This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke.</remarks>
+        </member>
+        <member name="T:System.Windows.Interactivity.TriggerCollection">
+            <summary>
+             Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes.
+             </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerCollection"/> class.
+            </summary>
+            <remarks>Internal, because this should not be inherited outside this assembly.</remarks>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnAttached">
+            <summary>
+            Called immediately after the collection is attached to an AssociatedObject.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.OnDetaching">
+            <summary>
+            Called when the collection is being detached from its AssociatedObject, but before it has actually occurred.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemAdded(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when a new item is added to the collection.
+            </summary>
+            <param name="item">The new item.</param>
+        </member>
+        <member name="M:System.Windows.Interactivity.TriggerCollection.ItemRemoved(System.Windows.Interactivity.TriggerBase)">
+            <summary>
+            Called when an item is removed from the collection.
+            </summary>
+            <param name="item">The removed item.</param>
+        </member>
+        <member name="T:System.Windows.Interactivity.TypeConstraintAttribute">
+            <summary>
+            Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase.
+            </summary>
+        </member>
+        <member name="M:System.Windows.Interactivity.TypeConstraintAttribute.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TypeConstraintAttribute"/> class.
+            </summary>
+            <param name="constraint">The constraint type.</param>
+        </member>
+        <member name="P:System.Windows.Interactivity.TypeConstraintAttribute.Constraint">
+            <summary>
+            Gets the constraint type.
+            </summary>
+            <value>The constraint type.</value>
+        </member>
+        <member name="T:System.Windows.Interactivity.ExceptionStringTable">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostBehaviorCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same BehaviorCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostBehaviorMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerActionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerCollectionMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CannotHostTriggerMultipleTimesExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.CommandDoesNotExistOnBehaviorWarningMessage">
+            <summary>
+              Looks up a localized string similar to The command &quot;{0}&quot; does not exist or is not publicly exposed on {1}..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.DefaultTriggerAttributeInvalidTriggerTypeSpecifiedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to &quot;{0}&quot; is not a valid type for the TriggerType parameter. Make sure &quot;{0}&quot; derives from TriggerBase..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.DuplicateItemInCollectionExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot add the same instance of &quot;{0}&quot; to a &quot;{1}&quot; more than once..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.EventTriggerBaseInvalidEventExceptionMessage">
+            <summary>
+              Looks up a localized string similar to The event &quot;{0}&quot; on type &quot;{1}&quot; has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.EventTriggerCannotFindEventNameExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot find an event named &quot;{0}&quot; on type &quot;{1}&quot;..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.RetargetedTypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to An object of type &quot;{0}&quot; cannot have a {3} property of type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can have only a {3} property of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.TypeConstraintViolatedExceptionMessage">
+            <summary>
+              Looks up a localized string similar to Cannot attach type &quot;{0}&quot; to type &quot;{1}&quot;. Instances of type &quot;{0}&quot; can only be attached to objects of type &quot;{2}&quot;..
+            </summary>
+        </member>
+        <member name="P:System.Windows.Interactivity.ExceptionStringTable.UnableToResolveTargetNameWarningMessage">
+            <summary>
+              Looks up a localized string similar to Unable to resolve TargetName &quot;{0}&quot;..
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ar/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ar/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..542902b
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ar/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/bg/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/bg/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..93d34d6
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/bg/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ca/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ca/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..2680f60
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ca/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/cs/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/cs/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..eca9b6f
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/cs/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/da/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/da/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..6229db1
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/da/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/de/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/de/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..79a325f
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/de/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/el/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/el/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..55b4358
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/el/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/es/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/es/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..d3fa95b
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/es/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/et/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/et/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..7ee2923
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/et/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/eu/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/eu/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..ffa70b7
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/eu/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fi/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fi/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..a65a0f2
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fi/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fr/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fr/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..49322fb
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/fr/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/he/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/he/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..cc964e2
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/he/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hr/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hr/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..ce98a53
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hr/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hu/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hu/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..ad26a06
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/hu/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/id/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/id/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..7a76f10
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/id/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/it/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/it/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..0c85002
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/it/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ja/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ja/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..1778a0d
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ja/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ko/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ko/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..c9114c9
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ko/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lt/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lt/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..396397b
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lt/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lv/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lv/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..74af2cf
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/lv/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ms/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ms/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..b4e4750
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ms/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/nl/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/nl/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..4f7e3f6
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/nl/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/no/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/no/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..4b679e0
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/no/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pl/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pl/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..2240ef1
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pl/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt-BR/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt-BR/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..c55da45
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt-BR/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..568f66a
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/pt/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ro/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ro/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..ac69845
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ro/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ru/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ru/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..35e5a29
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/ru/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sk/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sk/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..c364c65
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sk/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sl/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sl/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..dc7e64f
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sl/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Cyrl-CS/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Cyrl-CS/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..6c3c7d6
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Cyrl-CS/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Latn-CS/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Latn-CS/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..8e611cb
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sr-Latn-CS/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sv/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sv/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..11a0218
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/sv/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/th/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/th/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..e68a9bf
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/th/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/tr/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/tr/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..b447cb5
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/tr/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/uk/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/uk/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..1b7f6a5
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/uk/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/vi/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/vi/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..82b86e3
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/vi/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hans/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hans/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..87ea9b4
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hans/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hant/System.Windows.Controls.resources.dll b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hant/System.Windows.Controls.resources.dll
new file mode 100644 (file)
index 0000000..067ec47
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.1.2.0/lib/SL40/zh-Hant/System.Windows.Controls.resources.dll differ
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/AppBootstrapper.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/AppBootstrapper.cs
new file mode 100644 (file)
index 0000000..aeb01ae
--- /dev/null
@@ -0,0 +1,57 @@
+namespace Pithos.Client.WPF
+{
+       using System;
+       using System.Collections.Generic;
+       using System.ComponentModel.Composition;
+       using System.ComponentModel.Composition.Hosting;
+       using System.ComponentModel.Composition.Primitives;
+       using System.Linq;
+       using Caliburn.Micro;
+
+       public class AppBootstrapper : Bootstrapper<IShell>
+       {
+               CompositionContainer container;
+
+               /// <summary>
+               /// By default, we are configured to use MEF
+               /// </summary>
+               protected override void Configure() {
+                   var catalog = new AggregateCatalog(
+                       AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()
+                       );
+
+                       container = new CompositionContainer(catalog);
+
+                       var batch = new CompositionBatch();
+
+                       batch.AddExportedValue<IWindowManager>(new WindowManager());
+                       batch.AddExportedValue<IEventAggregator>(new EventAggregator());
+                       batch.AddExportedValue(container);
+                   batch.AddExportedValue(catalog);
+
+                       container.Compose(batch);
+               }
+
+               protected override object GetInstance(Type serviceType, string key)
+               {
+                       string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
+                       var exports = container.GetExportedValues<object>(contract);
+
+                       if (exports.Count() > 0)
+                               return exports.First();
+
+                       throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
+               }
+
+               protected override IEnumerable<object> GetAllInstances(Type serviceType)
+               {
+                       return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
+               }
+
+               protected override void BuildUp(object instance)
+               {
+                       container.SatisfyImportsOnce(instance);
+               }
+       }
+}
+
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/IShell.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/IShell.cs
new file mode 100644 (file)
index 0000000..36ac301
--- /dev/null
@@ -0,0 +1,4 @@
+namespace Pithos.Client.WPF {
+    public interface IShell {}
+}
+
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellView.xaml b/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellView.xaml
new file mode 100644 (file)
index 0000000..8fb70b9
--- /dev/null
@@ -0,0 +1,13 @@
+<Window x:Class="Pithos.Client.WPF.ShellView"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+
+       <Grid Background="White">
+               <TextBlock Text="Hello Caliburn Micro!"
+                          VerticalAlignment="Center"
+                          HorizontalAlignment="Center"
+                          FontSize="20" />
+       </Grid>
+
+</Window>
+
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellViewModel.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/NET40/ShellViewModel.cs
new file mode 100644 (file)
index 0000000..3d53d45
--- /dev/null
@@ -0,0 +1,7 @@
+namespace Pithos.Client.WPF {
+    using System.ComponentModel.Composition;
+
+    [Export(typeof(IShell))]
+    public class ShellViewModel : IShell {}
+}
+
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/AppBootstrapper.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/AppBootstrapper.cs
new file mode 100644 (file)
index 0000000..ea2267f
--- /dev/null
@@ -0,0 +1,72 @@
+namespace $safeprojectname$ {
+    using System;
+    using System.Collections.Generic;
+    using System.Windows.Controls;
+    using Microsoft.Phone.Controls;
+    using Caliburn.Micro;
+
+    public class AppBootstrapper : PhoneBootstrapper
+    {
+        PhoneContainer container;
+
+        protected override void Configure()
+        {
+            container = new PhoneContainer(RootFrame);
+
+                       container.RegisterPhoneServices();
+            container.PerRequest<MainPageViewModel>();
+
+            AddCustomConventions();
+        }
+
+        protected override object GetInstance(Type service, string key)
+        {
+            return container.GetInstance(service, key);
+        }
+
+        protected override IEnumerable<object> GetAllInstances(Type service)
+        {
+            return container.GetAllInstances(service);
+        }
+
+        protected override void BuildUp(object instance)
+        {
+            container.BuildUp(instance);
+        }
+
+        static void AddCustomConventions()
+        {
+            ConventionManager.AddElementConvention<Pivot>(Pivot.ItemsSourceProperty, "SelectedItem", "SelectionChanged").ApplyBinding =
+                (viewModelType, path, property, element, convention) => {
+                    if (ConventionManager
+                        .GetElementConvention(typeof(ItemsControl))
+                        .ApplyBinding(viewModelType, path, property, element, convention))
+                    {
+                        ConventionManager
+                            .ConfigureSelectedItem(element, Pivot.SelectedItemProperty, viewModelType, path);
+                        ConventionManager
+                            .ApplyHeaderTemplate(element, Pivot.HeaderTemplateProperty, viewModelType);
+                        return true;
+                    }
+
+                    return false;
+                };
+
+            ConventionManager.AddElementConvention<Panorama>(Panorama.ItemsSourceProperty, "SelectedItem", "SelectionChanged").ApplyBinding =
+                (viewModelType, path, property, element, convention) => {
+                    if (ConventionManager
+                        .GetElementConvention(typeof(ItemsControl))
+                        .ApplyBinding(viewModelType, path, property, element, convention))
+                    {
+                        ConventionManager
+                            .ConfigureSelectedItem(element, Panorama.SelectedItemProperty, viewModelType, path);
+                        ConventionManager
+                            .ApplyHeaderTemplate(element, Panorama.HeaderTemplateProperty, viewModelType);
+                        return true;
+                    }
+
+                    return false;
+                };
+        }
+    }
+}
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/MainPageViewModel.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40-WP/MainPageViewModel.cs
new file mode 100644 (file)
index 0000000..7fa3793
--- /dev/null
@@ -0,0 +1,3 @@
+namespace $safeprojectname$ {
+    public class MainPageViewModel {}
+}
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/AppBootstrapper.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/AppBootstrapper.cs
new file mode 100644 (file)
index 0000000..abfad04
--- /dev/null
@@ -0,0 +1,56 @@
+namespace $safeprojectname$
+{
+       using System;
+       using System.Collections.Generic;
+       using System.ComponentModel.Composition;
+       using System.ComponentModel.Composition.Hosting;
+       using System.ComponentModel.Composition.Primitives;
+       using System.Linq;
+       using Caliburn.Micro;
+
+       public class AppBootstrapper : Bootstrapper<IShell>
+       {
+               CompositionContainer container;
+
+               /// <summary>
+               /// By default, we are configured to use MEF
+               /// </summary>
+               protected override void Configure() {
+                   var catalog = new AggregateCatalog(
+                       AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()
+                       );
+
+                       container = CompositionHost.Initialize(catalog);
+
+                       var batch = new CompositionBatch();
+
+                       batch.AddExportedValue<IWindowManager>(new WindowManager());
+                       batch.AddExportedValue<IEventAggregator>(new EventAggregator());
+                       batch.AddExportedValue(container);
+                   batch.AddExportedValue(catalog);
+
+                       container.Compose(batch);
+               }
+
+               protected override object GetInstance(Type serviceType, string key)
+               {
+                       string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
+                       var exports = container.GetExportedValues<object>(contract);
+
+                       if (exports.Count() > 0)
+                               return exports.First();
+
+                       throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
+               }
+
+               protected override IEnumerable<object> GetAllInstances(Type serviceType)
+               {
+                       return container.GetExportedValues<object>(AttributedModelServices.GetContractName(serviceType));
+               }
+
+               protected override void BuildUp(object instance)
+               {
+                       container.SatisfyImportsOnce(instance);
+               }
+       }
+}
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/IShell.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/IShell.cs
new file mode 100644 (file)
index 0000000..d1ee384
--- /dev/null
@@ -0,0 +1,3 @@
+namespace $safeprojectname$ {
+    public interface IShell {}
+}
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellView.xaml b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellView.xaml
new file mode 100644 (file)
index 0000000..f04bb4c
--- /dev/null
@@ -0,0 +1,12 @@
+<UserControl x:Class="$safeprojectname$.ShellView"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+
+       <Grid Background="White">
+               <TextBlock Text="Hello Caliburn Micro!"
+                          VerticalAlignment="Center"
+                          HorizontalAlignment="Center"
+                          FontSize="20" />
+       </Grid>
+
+</UserControl>
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellViewModel.cs b/trunk/packages/Caliburn.Micro.1.2.0/tools/SL40/ShellViewModel.cs
new file mode 100644 (file)
index 0000000..6bb92f2
--- /dev/null
@@ -0,0 +1,6 @@
+namespace $safeprojectname$ {
+    using System.ComponentModel.Composition;
+
+    [Export(typeof(IShell))]
+    public class ShellViewModel : IShell {}
+}
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.1.2.0/tools/install.ps1 b/trunk/packages/Caliburn.Micro.1.2.0/tools/install.ps1
new file mode 100644 (file)
index 0000000..4288e8b
--- /dev/null
@@ -0,0 +1,26 @@
+param($rootPath, $toolsPath, $package, $project)
+
+function get-content-path($contentRoot) {
+       $moniker = $project.Properties.Item("TargetFrameworkMoniker").Value
+       $frameworkname = new-object System.Runtime.Versioning.FrameworkName($moniker)
+
+       $id = $frameworkname.Identifier
+
+       if($id -eq ".NETFramework") { $relative = "NET40" }
+       elseif($id -eq "Silverlight" -and $frameworkname.Profile -eq "WindowsPhone") { $relative = "SL40-WP" }
+       elseif($id -eq "Silverlight" ) { $relative = "SL40" }
+       [System.IO.Path]::Combine($contentRoot, $relative)
+}
+$contentSource = get-content-path($rootPath + "\tools")
+$defaultNamespace = $project.Properties.Item("DefaultNamespace").Value
+
+ls $contentSource | foreach-object { 
+       $content = [System.IO.File]::ReadAllText($_.FullName)
+       $content = $content.Replace('$safeprojectname$', $defaultNamespace)
+       $content | out-file -Encoding UTF8 $_.FullName
+       $project.ProjectItems.AddFromFileCopy($_.FullName)
+}
+
+$project.DTE.ItemOperations.Navigate('http://caliburnmicro.codeplex.com/wikipage?title=Nuget')
\ No newline at end of file
diff --git a/trunk/packages/Caliburn.Micro.Logging.1.2/Caliburn.Micro.Logging.1.2.nupkg b/trunk/packages/Caliburn.Micro.Logging.1.2/Caliburn.Micro.Logging.1.2.nupkg
new file mode 100644 (file)
index 0000000..73a7ea7
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.Logging.1.2/Caliburn.Micro.Logging.1.2.nupkg differ
diff --git a/trunk/packages/Caliburn.Micro.Logging.1.2/content/Caliburn/Micro/Logging/DebugLogger.cs b/trunk/packages/Caliburn.Micro.Logging.1.2/content/Caliburn/Micro/Logging/DebugLogger.cs
new file mode 100644 (file)
index 0000000..a0aa587
--- /dev/null
@@ -0,0 +1,85 @@
+using System;
+using System.Diagnostics;
+
+namespace Caliburn.Micro.Logging
+{
+  /// <summary>
+  /// Implementation of the ILog and ILogExtended interfaces using
+  /// <see cref="Debug"/>.
+  /// </summary>
+  public class DebugLogger : ILog, ILogExtended
+  {
+    #region Constants
+    private const string ErrorText = "ERROR";
+    private const string WarnText = "WARN";
+    private const string InfoText = "INFO";
+    #endregion
+
+    #region Fields
+    private readonly Type _type;
+    #endregion
+    
+    #region Constructors
+    public DebugLogger(Type type)
+    {
+      _type = type;
+    }
+    #endregion
+    
+    #region Helper Methods
+    private string CreateLogMessage(string format, params object[] args)
+    {
+      return string.Format("[{0}] {1}", DateTime.Now.ToString("o"), string.Format(format, args));
+    }
+    #endregion
+    
+    #region ILog Members
+    /// <summary>
+    /// Logs the exception.
+    /// </summary>
+    /// <param name="exception">The exception.</param>
+    public void Error(Exception exception)
+    {
+      Debug.WriteLine(CreateLogMessage(exception.ToString()), ErrorText);
+    }
+    /// <summary>
+    /// Logs the message as info.
+    /// </summary>
+    /// <param name="format">A formatted message.</param><param name="args">Parameters to be injected into the formatted message.</param>
+    public void Info(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), InfoText);
+    }
+    /// <summary>
+    /// Logs the message as a warning.
+    /// </summary>
+    /// <param name="format">A formatted message.</param><param name="args">Parameters to be injected into the formatted message.</param>
+    public void Warn(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), WarnText);
+    }
+    #endregion
+
+    #region Implementation of ILogExtended
+    /// <summary>
+    /// Logs the message as error.
+    /// </summary>
+    /// <param name="format">A formatted message.</param>
+    /// <param name="args">Parameters to be injected into the formatted message.</param>
+    public void Error(string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format, args), ErrorText);
+    }
+    /// <summary>
+    /// Logs the exception.
+    /// </summary>
+    /// <param name="exception">The exception.</param>
+    /// <param name="format">A formatted message.</param>
+    /// <param name="args">Parameters to be injected into the formatted message.</param>
+    public void Error(Exception exception, string format, params object[] args)
+    {
+      Debug.WriteLine(CreateLogMessage(format + " - Exception = " + exception.ToString(), args), ErrorText);
+    }
+    #endregion
+  }
+}
diff --git a/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40-client/Caliburn.Micro.Logging.dll b/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40-client/Caliburn.Micro.Logging.dll
new file mode 100644 (file)
index 0000000..f543f2a
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40-client/Caliburn.Micro.Logging.dll differ
diff --git a/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40/Caliburn.Micro.Logging.dll b/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40/Caliburn.Micro.Logging.dll
new file mode 100644 (file)
index 0000000..1b5d0f7
Binary files /dev/null and b/trunk/packages/Caliburn.Micro.Logging.1.2/lib/net40/Caliburn.Micro.Logging.dll differ