Skip to content

Commit

Permalink
Show nav sidebar only on hover
Browse files Browse the repository at this point in the history
  • Loading branch information
shatyuka committed May 18, 2024
1 parent d9e12e1 commit b8156af
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
4 changes: 3 additions & 1 deletion CollapseLauncher/XAMLs/MainApp/MainPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Background="{ThemeResource BackgroundOverlayTitleBarBrush}" />
<Border Width="48"
<Border x:Name="NavViewPaneBackground"
Width="48"
Margin="0"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
Opacity="0"
Background="{ThemeResource NavigationViewUnfoldedPaneBackground}"
BorderBrush="{ThemeResource AccentControlElevationBorderBrush}"
BorderThickness="0"
Expand Down
39 changes: 39 additions & 0 deletions CollapseLauncher/XAMLs/MainApp/MainPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
using CollapseLauncher.Interfaces;
using CollapseLauncher.Pages;
using CollapseLauncher.Statics;
using CommunityToolkit.WinUI;
using CommunityToolkit.WinUI.Animations;
using Hi3Helper;
using Hi3Helper.Shared.ClassStruct;
using InnoSetupHelper;
Expand Down Expand Up @@ -41,6 +43,7 @@
using static Hi3Helper.Locale;
using static Hi3Helper.Logger;
using static Hi3Helper.Shared.Region.LauncherConfig;
using UIElementExtensions = CollapseLauncher.Extension.UIElementExtensions;

namespace CollapseLauncher
{
Expand Down Expand Up @@ -1202,6 +1205,42 @@ private void NavView_Loaded(object sender, RoutedEventArgs e)
break;
}
}

var paneRoot = (Grid)NavigationViewControl.FindDescendant("PaneRoot");
if (paneRoot != null)
{
paneRoot.PointerEntered += NavView_PanePointerEntered;
paneRoot.PointerExited += NavView_PanePointerExited;
}

// The toggle button is not a part of pane. Why Microsoft!!!
var paneToggleButtonGrid = (Grid)NavigationViewControl.FindDescendant("PaneToggleButtonGrid");
if (paneToggleButtonGrid != null)
{
paneToggleButtonGrid.PointerEntered += NavView_PanePointerEntered;
paneToggleButtonGrid.PointerExited += NavView_PanePointerEntered;
}
}

private async void NavView_PanePointerEntered(object sender, PointerRoutedEventArgs e)
{
if (!NavigationViewControl.IsPaneOpen)
{
var duration = TimeSpan.FromSeconds(0.25);
var current = (float)NavViewPaneBackground.Opacity;
var animation = NavViewPaneBackground.GetElementCompositor()!
.CreateScalarKeyFrameAnimation("Opacity", 1, current);
await NavViewPaneBackground.StartAnimation(duration, animation);
}
}

private async void NavView_PanePointerExited(object sender, PointerRoutedEventArgs e)
{
var duration = TimeSpan.FromSeconds(0.25);
var current = (float)NavViewPaneBackground.Opacity;
var animation = NavViewPaneBackground.GetElementCompositor()!
.CreateScalarKeyFrameAnimation("Opacity", 0, current);
await NavViewPaneBackground.StartAnimation(duration, animation);
}

private void NavView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
Expand Down

0 comments on commit b8156af

Please sign in to comment.