diff --git a/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml b/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml
new file mode 100644
index 00000000..afda8d61
--- /dev/null
+++ b/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml.cs b/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml.cs
new file mode 100644
index 00000000..0ee5b046
--- /dev/null
+++ b/Source/LibationWinForms/AvaloniaUI/Controls/DirectoryOrCustomSelectControl.axaml.cs
@@ -0,0 +1,176 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+using Dinah.Core;
+using LibationFileManager;
+using System.Collections.Generic;
+using ReactiveUI;
+
+namespace LibationWinForms.AvaloniaUI.Controls
+{
+ public partial class DirectoryOrCustomSelectControl : UserControl
+ {
+ public static readonly StyledProperty> KnownDirectoriesProperty =
+ AvaloniaProperty.Register>(nameof(KnownDirectories), DirectorySelectControl.DefaultKnownDirectories);
+
+ public static readonly StyledProperty SubDirectoryProperty =
+ AvaloniaProperty.Register(nameof(SubDirectory));
+
+
+ public static readonly StyledProperty DirectoryProperty =
+ AvaloniaProperty.Register(nameof(Directory));
+
+ public List KnownDirectories
+ {
+ get => GetValue(KnownDirectoriesProperty);
+ set => SetValue(KnownDirectoriesProperty, value);
+ }
+
+ public string Directory
+ {
+ get => GetValue(DirectoryProperty);
+ set => SetValue(DirectoryProperty, value);
+ }
+
+ public string SubDirectory
+ {
+ get => GetValue(SubDirectoryProperty);
+ set => SetValue(SubDirectoryProperty, value);
+ }
+ CustomState customStates = new();
+ public DirectoryOrCustomSelectControl()
+ {
+ InitializeComponent();
+
+ customDirBrowseBtn = this.Find