diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml
index fd0c705e7d..260239e9ef 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml
@@ -152,11 +152,7 @@
-
-
-
-
-
+
@@ -165,21 +161,35 @@
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
@@ -199,7 +209,6 @@
-
@@ -211,4 +220,4 @@
-
\ No newline at end of file
+
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml.cs
index 41af183c3c..819a720043 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml.cs
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Dock/DockItemControl.xaml.cs
@@ -104,6 +104,7 @@ public sealed partial class DockItemControl : Control
private void UpdateCompactState()
{
VisualStateManager.GoToState(this, IsCompact ? "Compact" : "DefaultLayout", true);
+ UpdateSubtitleVisibilityState();
}
private const string IconPresenterName = "IconPresenter";
@@ -120,7 +121,6 @@ public sealed partial class DockItemControl : Control
{
control.UpdateTextVisibility();
control.UpdateAlignment();
- control.UpdateCompactState();
}
}
@@ -142,6 +142,8 @@ public sealed partial class DockItemControl : Control
private void UpdateTextVisibility()
{
UpdateTextVisibilityState();
+ UpdateSubtitleVisibilityState();
+ UpdateContentSpacingState();
}
private void UpdateTextVisibilityState()
@@ -166,6 +168,12 @@ public sealed partial class DockItemControl : Control
VisualStateManager.GoToState(this, stateName, true);
}
+ private void UpdateSubtitleVisibilityState()
+ {
+ var showSubtitle = HasSubtitle && !IsCompact;
+ VisualStateManager.GoToState(this, showSubtitle ? "SubtitleVisible" : "SubtitleHidden", true);
+ }
+
private void UpdateIconVisibility()
{
var shouldShowIcon = ShouldShowIcon();
@@ -175,6 +183,7 @@ public sealed partial class DockItemControl : Control
}
UpdateIconVisibilityState();
+ UpdateContentSpacingState();
}
private void UpdateIconVisibilityState()
@@ -182,6 +191,12 @@ public sealed partial class DockItemControl : Control
VisualStateManager.GoToState(this, ShouldShowIcon() ? "IconVisible" : "IconHidden", true);
}
+ private void UpdateContentSpacingState()
+ {
+ var showSpacing = TextVisibility != Visibility.Collapsed && HasText && ShouldShowIcon();
+ VisualStateManager.GoToState(this, showSpacing ? "ContentSpacingVisible" : "ContentSpacingHidden", true);
+ }
+
private void UpdateAlignment()
{
HorizontalAlignment = HorizontalAlignment.Stretch;