diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj
index 4e2dfb9969..76114c385b 100644
--- a/samples/ControlCatalog/ControlCatalog.csproj
+++ b/samples/ControlCatalog/ControlCatalog.csproj
@@ -32,6 +32,9 @@
Designer
+
+ Designer
+
Designer
@@ -86,6 +89,9 @@
MainView.xaml
+
+ DecoratedWindow.xaml
+
MainWindow.xaml
diff --git a/samples/ControlCatalog/DecoratedWindow.xaml b/samples/ControlCatalog/DecoratedWindow.xaml
new file mode 100644
index 0000000000..d3dbad679a
--- /dev/null
+++ b/samples/ControlCatalog/DecoratedWindow.xaml
@@ -0,0 +1,33 @@
+
+
+
+
+ Title
+
+
+
+
+
+
+
+
+
+
+ Hello world!
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/ControlCatalog/DecoratedWindow.xaml.cs b/samples/ControlCatalog/DecoratedWindow.xaml.cs
new file mode 100644
index 0000000000..4a11e45519
--- /dev/null
+++ b/samples/ControlCatalog/DecoratedWindow.xaml.cs
@@ -0,0 +1,53 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+using System;
+using Avalonia.Input;
+
+namespace ControlCatalog
+{
+ public class DecoratedWindow : Window
+ {
+ public DecoratedWindow()
+ {
+ this.InitializeComponent();
+ this.AttachDevTools();
+ }
+
+ void SetupSide(string name, StandardCursorType cursor, WindowEdge edge)
+ {
+ var ctl = this.FindControl(name);
+ ctl.Cursor = new Cursor(cursor);
+ ctl.PointerPressed += delegate
+ {
+ PlatformImpl.BeginResizeDrag(edge);
+ };
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ this.FindControl("TitleBar").PointerPressed += delegate
+ {
+ PlatformImpl.BeginMoveDrag();
+ };
+ SetupSide("Left", StandardCursorType.LeftSide, WindowEdge.West);
+ SetupSide("Right", StandardCursorType.RightSide, WindowEdge.East);
+ SetupSide("Top", StandardCursorType.TopSide, WindowEdge.South);
+ SetupSide("Bottom", StandardCursorType.BottomSize, WindowEdge.North);
+ SetupSide("TopLeft", StandardCursorType.TopLeftCorner, WindowEdge.NorthWest);
+ SetupSide("TopRight", StandardCursorType.TopRightCorner, WindowEdge.NorthEast);
+ SetupSide("BottomLeft", StandardCursorType.BottomLeftCorner, WindowEdge.SouthWest);
+ SetupSide("BottomRight", StandardCursorType.BottomRightCorner, WindowEdge.SouthEast);
+ this.FindControl