diff --git a/src/Avalonia.Controls/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs
similarity index 89%
rename from src/Avalonia.Controls/SplitView.cs
rename to src/Avalonia.Controls/SplitView/SplitView.cs
index b45e0f2adb..35faf8605d 100644
--- a/src/Avalonia.Controls/SplitView.cs
+++ b/src/Avalonia.Controls/SplitView/SplitView.cs
@@ -11,68 +11,6 @@ using Avalonia.Metadata;
namespace Avalonia.Controls
{
- ///
- /// Defines constants for how the SplitView Pane should display
- ///
- public enum SplitViewDisplayMode
- {
- ///
- /// Pane is displayed next to content, and does not auto collapse
- /// when tapped outside
- ///
- Inline,
- ///
- /// Pane is displayed next to content. When collapsed, pane is still
- /// visible according to CompactPaneLength. Pane does not auto collapse
- /// when tapped outside
- ///
- CompactInline,
- ///
- /// Pane is displayed above content. Pane collapses when tapped outside
- ///
- Overlay,
- ///
- /// Pane is displayed above content. When collapsed, pane is still
- /// visible according to CompactPaneLength. Pane collapses when tapped outside
- ///
- CompactOverlay
- }
-
- ///
- /// Defines constants for where the Pane should appear
- ///
- public enum SplitViewPanePlacement
- {
- Left,
- Right
- }
-
- public class SplitViewTemplateSettings : AvaloniaObject
- {
- internal SplitViewTemplateSettings() { }
-
- public static readonly StyledProperty ClosedPaneWidthProperty =
- AvaloniaProperty.Register(nameof(ClosedPaneWidth),
- 0d);
-
- public static readonly StyledProperty PaneColumnGridLengthProperty =
- AvaloniaProperty.Register(
- nameof(PaneColumnGridLength));
-
- public double ClosedPaneWidth
- {
- get => GetValue(ClosedPaneWidthProperty);
- internal set => SetValue(ClosedPaneWidthProperty, value);
- }
-
- public GridLength PaneColumnGridLength
- {
- get => GetValue(PaneColumnGridLengthProperty);
- internal set => SetValue(PaneColumnGridLengthProperty, value);
- }
- }
-
///
/// A control with two views: A collapsible pane and an area for content
///
diff --git a/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs b/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs
new file mode 100644
index 0000000000..6333f96f86
--- /dev/null
+++ b/src/Avalonia.Controls/SplitView/SplitViewDisplayMode.cs
@@ -0,0 +1,29 @@
+namespace Avalonia.Controls
+{
+ ///
+ /// Defines constants for how the SplitView Pane should display
+ ///
+ public enum SplitViewDisplayMode
+ {
+ ///
+ /// Pane is displayed next to content, and does not auto collapse
+ /// when tapped outside
+ ///
+ Inline,
+ ///
+ /// Pane is displayed next to content. When collapsed, pane is still
+ /// visible according to CompactPaneLength. Pane does not auto collapse
+ /// when tapped outside
+ ///
+ CompactInline,
+ ///
+ /// Pane is displayed above content. Pane collapses when tapped outside
+ ///
+ Overlay,
+ ///
+ /// Pane is displayed above content. When collapsed, pane is still
+ /// visible according to CompactPaneLength. Pane collapses when tapped outside
+ ///
+ CompactOverlay
+ }
+}
diff --git a/src/Avalonia.Controls/SplitViewPaneClosingEventArgs.cs b/src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs
similarity index 100%
rename from src/Avalonia.Controls/SplitViewPaneClosingEventArgs.cs
rename to src/Avalonia.Controls/SplitView/SplitViewPaneClosingEventArgs.cs
diff --git a/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs b/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs
new file mode 100644
index 0000000000..62c5387192
--- /dev/null
+++ b/src/Avalonia.Controls/SplitView/SplitViewPanePlacement.cs
@@ -0,0 +1,18 @@
+namespace Avalonia.Controls
+{
+ ///
+ /// Defines constants for where the Pane should appear
+ ///
+ public enum SplitViewPanePlacement
+ {
+ ///
+ /// The pane is shown to the left of content.
+ ///
+ Left,
+
+ ///
+ /// The pane is shown to the right of content.
+ ///
+ Right
+ }
+}
diff --git a/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs
new file mode 100644
index 0000000000..f2cbf55986
--- /dev/null
+++ b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs
@@ -0,0 +1,32 @@
+namespace Avalonia.Controls.Primitives
+{
+ ///
+ /// Provides calculated values for use with the 's control theme or template.
+ /// This class is NOT intended for general use.
+ ///
+ public class SplitViewTemplateSettings : AvaloniaObject
+ {
+ internal SplitViewTemplateSettings() { }
+
+ public static readonly StyledProperty ClosedPaneWidthProperty =
+ AvaloniaProperty.Register(nameof(ClosedPaneWidth),
+ 0d);
+
+ public static readonly StyledProperty PaneColumnGridLengthProperty =
+ AvaloniaProperty.Register(
+ nameof(PaneColumnGridLength));
+
+ public double ClosedPaneWidth
+ {
+ get => GetValue(ClosedPaneWidthProperty);
+ internal set => SetValue(ClosedPaneWidthProperty, value);
+ }
+
+ public GridLength PaneColumnGridLength
+ {
+ get => GetValue(PaneColumnGridLengthProperty);
+ internal set => SetValue(PaneColumnGridLengthProperty, value);
+ }
+ }
+}