diff --git a/Perspex.Controls/Perspex.Controls.csproj b/Perspex.Controls/Perspex.Controls.csproj
index a21f9cc112..3551d7aa15 100644
--- a/Perspex.Controls/Perspex.Controls.csproj
+++ b/Perspex.Controls/Perspex.Controls.csproj
@@ -48,6 +48,7 @@
+
diff --git a/Perspex.Controls/Presenters/DeckPresenter.cs b/Perspex.Controls/Presenters/DeckPresenter.cs
new file mode 100644
index 0000000000..c3fbe01544
--- /dev/null
+++ b/Perspex.Controls/Presenters/DeckPresenter.cs
@@ -0,0 +1,128 @@
+// -----------------------------------------------------------------------
+//
+// Copyright 2015 MIT Licence. See licence.md for more information.
+//
+// -----------------------------------------------------------------------
+
+namespace Perspex.Controls.Presenters
+{
+ using Perspex.Controls.Generators;
+ using Perspex.Controls.Primitives;
+ using Perspex.Input;
+ using Perspex.Styling;
+ using System;
+ using System.Collections;
+ using System.Collections.Specialized;
+ using System.Reactive.Linq;
+
+ public class DeckPresenter : Control, IVisual, IPresenter, ITemplatedControl
+ {
+ public static readonly PerspexProperty ItemsProperty =
+ ItemsControl.ItemsProperty.AddOwner();
+
+ public static readonly PerspexProperty ItemsPanelProperty =
+ ItemsControl.ItemsPanelProperty.AddOwner();
+
+ public static readonly PerspexProperty