diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml
new file mode 100644
index 0000000000..96305eaf50
--- /dev/null
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml.cs
new file mode 100644
index 0000000000..661137aad7
--- /dev/null
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/DockEditor.xaml.cs
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Microsoft.CmdPal.UI.ViewModels.Dock;
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+namespace Microsoft.CmdPal.UI.Controls;
+
+public sealed partial class DockEditor : UserControl
+{
+ public ObservableCollection DockBands
+ {
+ get => (ObservableCollection)GetValue(DockBandsProperty);
+ set => SetValue(DockBandsProperty, value);
+ }
+
+ public static readonly DependencyProperty DockBandsProperty = DependencyProperty.Register(nameof(DockBands), typeof(ObservableCollection), typeof(DockEditor), new PropertyMetadata(new ObservableCollection()));
+
+ public DockEditor()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.sln b/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.sln
new file mode 100644
index 0000000000..14223fdfbe
--- /dev/null
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.sln
@@ -0,0 +1,24 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.2.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.UI", "Microsoft.CmdPal.UI.csproj", "{B2E61206-8E5C-BAB9-830A-6C3B7C28C519}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B2E61206-8E5C-BAB9-830A-6C3B7C28C519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2E61206-8E5C-BAB9-830A-6C3B7C28C519}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B2E61206-8E5C-BAB9-830A-6C3B7C28C519}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B2E61206-8E5C-BAB9-830A-6C3B7C28C519}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {83BE4CC2-3723-4E87-882E-5FAAE040F5DC}
+ EndGlobalSection
+EndGlobal