diff --git a/src/Avalonia.Themes.Fluent/Controls/DrawerPage.xaml b/src/Avalonia.Themes.Fluent/Controls/DrawerPage.xaml
index 2a5a672d6b..612db8d69c 100644
--- a/src/Avalonia.Themes.Fluent/Controls/DrawerPage.xaml
+++ b/src/Avalonia.Themes.Fluent/Controls/DrawerPage.xaml
@@ -200,6 +200,22 @@
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml b/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml
index c1a448541d..42445ff4c3 100644
--- a/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml
+++ b/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml
@@ -183,6 +183,22 @@
+
+
+
+
+
+
+
+
diff --git a/tests/Avalonia.RenderTests/Controls/DrawerPageTests.cs b/tests/Avalonia.RenderTests/Controls/DrawerPageTests.cs
index a26bc14e83..961b959c17 100644
--- a/tests/Avalonia.RenderTests/Controls/DrawerPageTests.cs
+++ b/tests/Avalonia.RenderTests/Controls/DrawerPageTests.cs
@@ -139,7 +139,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
}
[Fact]
- public async Task DrawerPage_CompactOverlay_Closed_ShowsRail()
+ public async Task DrawerPage_LeftPlacement_CompactOverlay_Closed_ShowsRail()
{
var target = new Decorator
{
@@ -181,7 +181,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
}
[Fact]
- public async Task DrawerPage_CompactOverlay_Open_PaneOverlaysContent()
+ public async Task DrawerPage_LeftPlacement_CompactOverlay_Open_PaneOverlaysContent()
{
var target = new Decorator
{
@@ -222,7 +222,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
}
[Fact]
- public async Task DrawerPage_CompactInline_Closed_ShowsRail()
+ public async Task DrawerPage_LeftPlacement_CompactInline_Closed_ShowsRail()
{
var target = new Decorator
{
@@ -264,7 +264,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
}
[Fact]
- public async Task DrawerPage_CompactInline_Open_PanePushesContent()
+ public async Task DrawerPage_LeftPlacement_CompactInline_Open_PanePushesContent()
{
var target = new Decorator
{
@@ -460,5 +460,255 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
await RenderToFile(target);
CompareImages(skipImmediate: true);
}
+
+ [Fact]
+ public async Task DrawerPage_RightPlacement_CompactOverlay_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactOverlay,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Right,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8EAF6")),
+ Drawer = new StackPanel
+ {
+ Margin = new Thickness(0, 4),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#3949AB")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 8) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 4) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#43A047")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 4) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
+
+ [Fact]
+ public async Task DrawerPage_RightPlacement_CompactInline_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactInline,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Right,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8F5E9")),
+ Drawer = new StackPanel
+ {
+ Margin = new Thickness(0, 4),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#2E7D32")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 8) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 4) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#FB8C00")), HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 4) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
+
+ [Fact]
+ public async Task DrawerPage_TopPlacement_CompactOverlay_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactOverlay,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Top,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8EAF6")),
+ Drawer = new StackPanel
+ {
+ Orientation = Orientation.Horizontal,
+ Margin = new Thickness(4, 0),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#3949AB")), Margin = new Thickness(8, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), Margin = new Thickness(4, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#43A047")), Margin = new Thickness(4, 0) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
+
+ [Fact]
+ public async Task DrawerPage_TopPlacement_CompactInline_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactInline,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Top,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8F5E9")),
+ Drawer = new StackPanel
+ {
+ Orientation = Orientation.Horizontal,
+ Margin = new Thickness(4, 0),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#2E7D32")), Margin = new Thickness(8, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), Margin = new Thickness(4, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#FB8C00")), Margin = new Thickness(4, 0) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
+
+ [Fact]
+ public async Task DrawerPage_BottomPlacement_CompactOverlay_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactOverlay,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Bottom,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8EAF6")),
+ Drawer = new StackPanel
+ {
+ Orientation = Orientation.Horizontal,
+ Margin = new Thickness(4, 0),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#3949AB")), Margin = new Thickness(8, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), Margin = new Thickness(4, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#43A047")), Margin = new Thickness(4, 0) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
+
+ [Fact]
+ public async Task DrawerPage_BottomPlacement_CompactInline_Closed_ShowsRail()
+ {
+ var target = new Decorator
+ {
+ Width = 500,
+ Height = 350,
+ Child = new DrawerPage
+ {
+ Background = Brushes.White,
+ DrawerLength = 200,
+ DrawerLayoutBehavior = DrawerLayoutBehavior.CompactInline,
+ CompactDrawerLength = 48,
+ DrawerPlacement = DrawerPlacement.Bottom,
+ DrawerBackground = new SolidColorBrush(Color.Parse("#E8F5E9")),
+ Drawer = new StackPanel
+ {
+ Orientation = Orientation.Horizontal,
+ Margin = new Thickness(4, 0),
+ Children =
+ {
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#2E7D32")), Margin = new Thickness(8, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#E53935")), Margin = new Thickness(4, 0) },
+ new Border { Width = 24, Height = 24, Background = new SolidColorBrush(Color.Parse("#FB8C00")), Margin = new Thickness(4, 0) },
+ }
+ },
+ Content = new Border
+ {
+ Width = 120,
+ Height = 80,
+ Background = new SolidColorBrush(Color.Parse("#DCEEFB")),
+ HorizontalAlignment = HorizontalAlignment.Center,
+ VerticalAlignment = VerticalAlignment.Center
+ }
+ }
+ };
+
+ target.Styles.Add(new SimpleTheme());
+ await RenderToFile(target);
+ CompareImages(skipImmediate: true);
+ }
}
}
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactInline_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactInline_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..676905c809
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactInline_Closed_ShowsRail.expected.png differ
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactOverlay_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactOverlay_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..62f2b83f84
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_BottomPlacement_CompactOverlay_Closed_ShowsRail.expected.png differ
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactInline_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactInline_Closed_ShowsRail.expected.png
similarity index 100%
rename from tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactInline_Closed_ShowsRail.expected.png
rename to tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactInline_Closed_ShowsRail.expected.png
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactInline_Open_PanePushesContent.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactInline_Open_PanePushesContent.expected.png
similarity index 100%
rename from tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactInline_Open_PanePushesContent.expected.png
rename to tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactInline_Open_PanePushesContent.expected.png
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactOverlay_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactOverlay_Closed_ShowsRail.expected.png
similarity index 100%
rename from tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactOverlay_Closed_ShowsRail.expected.png
rename to tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactOverlay_Closed_ShowsRail.expected.png
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactOverlay_Open_PaneOverlaysContent.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactOverlay_Open_PaneOverlaysContent.expected.png
similarity index 100%
rename from tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_CompactOverlay_Open_PaneOverlaysContent.expected.png
rename to tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_LeftPlacement_CompactOverlay_Open_PaneOverlaysContent.expected.png
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactInline_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactInline_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..d180c53f29
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactInline_Closed_ShowsRail.expected.png differ
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactOverlay_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactOverlay_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..729a39028f
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_RightPlacement_CompactOverlay_Closed_ShowsRail.expected.png differ
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactInline_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactInline_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..079e54a59d
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactInline_Closed_ShowsRail.expected.png differ
diff --git a/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactOverlay_Closed_ShowsRail.expected.png b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactOverlay_Closed_ShowsRail.expected.png
new file mode 100644
index 0000000000..70994e4623
Binary files /dev/null and b/tests/TestFiles/Skia/Controls/DrawerPage/DrawerPage_TopPlacement_CompactOverlay_Closed_ShowsRail.expected.png differ