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;