Возникла проблема с тем, как PaneFooter обрабатывает эффекты ролловера для пунктов меню навигации.
Как видите, кнопка ChangeUser преждевременно отключает эффект наведения курсора, что приводит к нечетному выделению.
Мне было интересно, сталкивался ли кто-нибудь с этим или знает исправление?
Вот мои проекты, текущий XAML для Nav View
<Page
x:Class = "BS.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local = "using:BS"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
RequestedTheme = "Dark"
Background = "{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Page.Resources>
</Page.Resources>
<Grid>
<Grid.Resources>
<AcrylicBrush x:Key = "NavigationViewDefaultPaneBackground"
BackgroundSource = "HostBackdrop"
TintColor = "#262626"
TintOpacity = "0.825"
FallbackColor = "#262626"/>
</Grid.Resources>
<NavigationView IsSettingsVisible = "False" x:Name = "NavView" PaneTitle = "Budget Sheet" IsBackButtonVisible = "Collapsed" PaneDisplayMode = "LeftMinimal" Background = "{StaticResource CustomAcrylicDarkBackground}">
<NavigationView.MenuItems>
<StackPanel Orientation = "Horizontal" UseLayoutRounding = "False">
<AppBarButton Icon = "Page2" Margin = "0, 2, 1, 0" Tag = "New_Sheet" HorizontalAlignment = "Center"/>
<AppBarButton Icon = "OpenFile" Margin = "1, 2, 0, 0" Tag = "Open_Sheet" HorizontalAlignment = "Center"/>
<AppBarButton Icon = "Save" Margin = "1, 2, 0, 0" Tag = "Save_Sheet" HorizontalAlignment = "Center"/>
<AppBarButton Icon = "Setting" Margin = "1, 2, 0, 0" Tag = "Settings_Sheet" HorizontalAlignment = "Center"/>
</StackPanel>
<NavigationViewItemSeparator/>
<NavigationViewItem Name = "HomeItem" Content = "HOME" Tag = "HOME_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
<NavigationViewItemSeparator/>
<NavigationViewItem Name = "OverviewItem" Content = "OVERVIEW" Tag = "OverView_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
<NavigationViewItem Name = "BItem" Content = "B" Tag = "B_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
<NavigationViewItem Name = "PItem" Content = "P" Tag = "BP_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
<NavigationViewItem Name = "TItem" Content = "T" Tag = "T_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
<NavigationViewItem Name = "PDItem" Content = "PD" Tag = "PD_Page" FontSize = "22" HorizontalAlignment = "Stretch" FontWeight = "Bold" Foreground = "#b880fc"/>
</NavigationView.MenuItems>
<NavigationView.PaneFooter>
<StackPanel>
<NavigationViewItem Style = "{ThemeResource NavigationViewTitleHeaderContentControlTextStyle}" Name = "ChangePerson" VerticalAlignment = "Stretch" Content = "Change User" Icon = "Contact" Tag = "UserChange_Page" FontSize = "16" HorizontalAlignment = "Center" FontWeight = "Bold" Foreground = "#b880fc"/>
</StackPanel>
</NavigationView.PaneFooter>
</NavigationView>
</Grid>
</Page>
🤔 А знаете ли вы, что...
C# поддерживает атрибуты, которые позволяют добавлять метаданные к коду.
Ваш элемент управления нижним колонтитулом вложен в StackPanel, который добавляет к нему дополнительные отступы и, следовательно, делает его странным. У вас есть следующие решения:
Вот сообщение в блоге для получения дополнительной информации о WinUihttps://blogs.windows.com/buildingapps/2018/07/23/windows-ui-library-preview-released/
Winui - это фактически библиотека nuget, которую можно использовать в вашем приложении uwp. и, как упоминалось в блоге выше, вы можете посетить ветку dev репозитория образцов xamlUI на Github, чтобы увидеть, как реализован новый NavigationView, я уверен, что это решит ваши потребности, и если это все еще не удается, вы можете связать это переполнение стека задайте вопрос и откройте проблему в этом репо, и я уверен, что команда вам поможет.