diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/WrapPanelCustom/WrapPanel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/WrapPanelCustom/WrapPanel.cs
index 61fa42202e..24aa437f18 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/WrapPanelCustom/WrapPanel.cs
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Controls/WrapPanelCustom/WrapPanel.cs
@@ -99,8 +99,6 @@ public sealed partial class WrapPanel : Panel
set { SetValue(HorizontalSpacingProperty, value); }
}
- private bool IsSectionItem(UIElement element) => element is FrameworkElement fe && fe.DataContext is ListItemViewModel item && item.IsSectionOrSeparator;
-
///
/// Identifies the dependency property.
///
@@ -350,7 +348,7 @@ public sealed partial class WrapPanel : Panel
return;
}
- var isFullLine = IsSectionItem(child);
+ var isFullLine = GetIsFullLine(child);
var desiredMeasure = new UvMeasure(Orientation, child.DesiredSize);
if (isFullLine)
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/GridItemContainerStyleSelector.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/GridItemContainerStyleSelector.cs
index 5d45592ef1..ae585e7f11 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/GridItemContainerStyleSelector.cs
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/GridItemContainerStyleSelector.cs
@@ -18,8 +18,19 @@ internal sealed partial class GridItemContainerStyleSelector : StyleSelector
public Style? Gallery { get; set; }
+ public Style? Section { get; set; }
+
+ public Style? Separator { get; set; }
+
protected override Style? SelectStyleCore(object item, DependencyObject container)
{
+ if (item is ListItemViewModel { IsSectionOrSeparator: true } listItem)
+ {
+ return string.IsNullOrWhiteSpace(listItem.Title)
+ ? Separator!
+ : Section;
+ }
+
return GridProperties switch
{
SmallGridPropertiesViewModel => Small,
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/ListItemContainerStyleSelector.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/ListItemContainerStyleSelector.cs
new file mode 100644
index 0000000000..45a785c2b4
--- /dev/null
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Converters/ListItemContainerStyleSelector.cs
@@ -0,0 +1,28 @@
+// 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 Microsoft.CmdPal.Core.ViewModels;
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+
+namespace Microsoft.CmdPal.UI;
+
+internal sealed partial class ListItemContainerStyleSelector : StyleSelector
+{
+ public Style? Default { get; set; }
+
+ public Style? Section { get; set; }
+
+ public Style? Separator { get; set; }
+
+ protected override Style? SelectStyleCore(object item, DependencyObject container)
+ {
+ return item switch
+ {
+ ListItemViewModel { IsSectionOrSeparator: true } listItemViewModel when string.IsNullOrWhiteSpace(listItemViewModel.Title) => Separator!,
+ ListItemViewModel { IsSectionOrSeparator: true } => Section,
+ _ => Default,
+ };
+ }
+}
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml
index d18896af12..c0edf83390 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml
@@ -27,6 +27,10 @@
8
8
+ 40
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
@@ -255,21 +332,21 @@
-
+
+
-
@@ -414,7 +487,7 @@
VerticalAlignment="Center"
CharacterSpacing="11"
FontSize="11"
- Foreground="{ThemeResource TextFillColorTertiary}"
+ Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind Subtitle, Mode=OneWay}"
TextAlignment="Center"
TextTrimming="WordEllipsis"
@@ -423,6 +496,10 @@
+
+
+
+
@@ -448,6 +525,7 @@
IsDoubleTapEnabled="True"
IsItemClickEnabled="True"
ItemClick="Items_ItemClick"
+ ItemContainerStyleSelector="{StaticResource ListItemContainerStyleSelector}"
ItemTemplateSelector="{StaticResource ListItemTemplateSelector}"
ItemsSource="{x:Bind ViewModel.FilteredItems, Mode=OneWay}"
RightTapped="Items_RightTapped"
@@ -460,7 +538,7 @@