我正在尝试使我的navViewItems表现得像按钮,而不是切换按钮。我不想选择navViewItem在选择后粘住。
private void NavView_SelectionChanged(
NavigationView sender,
NavigationViewSelectionChangedEventArgs args)
{
if (args.IsSettingsSelected)
{
NavView.Header = "Settings";
//rootFrame.Navigate(typeof(SettingsPage));
}
else if (args.SelectedItem != null)
{
NavigationViewItem item
= args.SelectedItem as NavigationViewItem;
NavView.Header = item.Tag;
// Unclick/Unselect NavViewItem Here <--
}
}
}
<Page ... >
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<NavigationView
RequestedTheme="Dark"
x:Name="NavView"
Header="Welcome"
SelectionChanged="NavView_SelectionChanged">
<NavigationView.MenuItems>
<NavigationViewItem
Icon="Home"
Content="Home"
Tag="Home"
Background="Maroon"
Foreground="White"/>
<NavigationViewItem
Icon="Back"
Content="PrevPage"
Tag="Back"
Background="Maroon"
Foreground="White"/>
<NavigationViewItem
Icon="Globe"
Content="Enter Info1"
Tag="EnterCompany"
Background="DarkGreen" Foreground="White"/>
<NavigationViewItem
Icon="PostUpdate"
Content="Enter Info2"
Tag="EnterJob"
Background="DarkGreen" Foreground="White"/>
<NavigationViewItem
Icon="Globe"
Content="Query Info1"
Tag="QueryCompany"
Background="DarkBlue" Foreground="White"/>
<NavigationViewItem
Icon="PostUpdate"
Content="Query Info2"
Tag="QueryJob"
Background="DarkBlue"
Foreground="White"/>
</NavigationView.MenuItems>
<Frame x:Name="ContentFrame" />
</NavigationView>
</Grid>
</Page>
我知道这样做的唯一方法就是扔掉导航控件并返回仅在网格上使用按钮...或定义一个模板,该模板关闭了所选的突出显示...无论如何,我正在尝试坚持使用NAV控件只是为了成为标准并获得自动调整大小的功能...
将SelectedIndex设置为"从选择变成事件"的null,以使"导航"选项卡变得不张紧并像按钮一样行动。在1803年之前,SelectedIndex属性已从SelectionChanged事件中阅读,并使用调度程序进行设置。
await Dispatcher.RunAsync(
Windows.UI.Core.CoreDispatcherPriority.Normal,
() => {
NavView.SelectedItem = null;
NavView.Header = "myHeader;
});
然而,在1803年,这种技巧的作品,尽管SelectedItem属性是从选择变成事件的Nolonger really的事件。在1803年使用调度程序将SelectionIndex设置为无效递归环路。