[ShortcutGuide] Use TransparentWindow + acrylic card chrome with slide animations#48181
Draft
niels9001 wants to merge 8 commits into
Draft
[ShortcutGuide] Use TransparentWindow + acrylic card chrome with slide animations#48181niels9001 wants to merge 8 commits into
niels9001 wants to merge 8 commits into
Conversation
…ontrols Adds the new PowerToys.Common.UI.Controls library additions (TransparentWindow, TransparentCard, AlwaysActiveDesktopAcrylicBackdrop) introduced for CmdPal's toast, and applies a slide-in/out animation to the ShortcutGuide main window. The page slides in from the same edge the window is pinned to (Left/Right based on the ShortcutGuideWindowPosition setting) when activated, and slides back out before closing on Escape, deactivation, or init failure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rylic chrome Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nUI TitleBar control ExtendsContentIntoTitleBar=true already hides the system caption, so the explicit PreferredHeightOption=Collapsed was redundant and crashed derived windows that host a WinUI TitleBar control (e.g. ShortcutGuide). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…indow edges - Reorder App.OnLaunched so TaskBarWindow exists before MainWindow ctor runs (SetWindowPosition needs it). - Move SetWindowPosition + animation attach + initial Visibility=Collapsed from Window_Activated into the ctor, so the window doesn't flash at default location before sliding in. - Animate the whole Card (acrylic chrome + content) as one unit instead of just the inner Grid. - Add 24px Margin around the Card and bump window Width 586 -> 634 to keep visible content the same size while giving shadow + screen-edge breathing room. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ition tolerate null TaskBarWindow TaskbarWindow ctor reads App.MainWindow.AppWindow.Position so MainWindow must be created first. Instead of reordering, allow SetWindowPosition to run while TaskBarWindow is still null - the first call in MainWindow ctor just skips the taskbar-overlap adjustment, which is fine since the taskbar window isn't visible yet anyway. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ghten margins - TaskbarWindow now derives from TransparentWindow, so it shares the same acrylic card chrome (rounded border + shadow) as MainWindow. - Added a vertical slide-up animation tuned to the actual window height after the taskbar-button measurement pass. - Bumped windowHeight and side margin to give the card a 12 DIP inset on every edge, matching MainWindow. - Updated KeyVisual + TaskbarIndicator backgrounds from acrylic-style brushes to solid ControlFillColorDefaultBrush since they now sit on the acrylic card instead of a plain backdrop. - Tightened MainWindow chrome margin 24 -> 12 (width 634 -> 610) so the visible card sits closer to the screen edge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
noraa-junker
reviewed
Jun 1, 2026
Comment on lines
+97
to
+99
| ### `ManifestInterpreter.GenerateIndexYmlFile` | ||
|
|
||
| This application generates the `index.yml` manifest file. | ||
|
|
||
| It is a separate project so that its code can be easier ported to WinGet in the future. | ||
| The `index.yml` manifest file is generated in-process by `ManifestInterpreter.GenerateIndexYmlFile` (in `ShortcutGuide.Ui/Helpers/ManifestInterpreter.cs`), called on a background thread from `Program.Main` before the UI loads. It scans the per-user manifest folder and writes the index used by the navigation/lookup code. |
Collaborator
There was a problem hiding this comment.
As the description states and as I already texted you, please let this be a separate project, so that it does not get too coupled and can later be transferred to winget.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the new shared
TransparentWindow+ acrylic-card chrome (originally built for the CmdPal animated notification in #48176) to ShortcutGuide.Both SG windows — the main shortcut overlay and the small "numbers" window that floats above the taskbar — now derive from
TransparentWindowand share the same look: rounded acrylic card, system stroke + shadow, no native chrome.What's new
MainWindowslides in from the screen edge it's pinned to (left/right) instead of just popping into place.TaskbarWindowslides up from below the taskbar.ControlFillColorDefaultBrushso they read cleanly on top of the new card.Notes
Common.UI.Controlslibrary in this PR (already merged via [CmdPal] Animated notification #48176).Screen.Recording.2026-05-28.140721.mp4