如何处理NavigationView PaneFooter设置项单击
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理NavigationView PaneFooter设置项单击相关的知识,希望对你有一定的参考价值。
添加NavigationView
时,“设置”项目会自动添加到NavigationView
的底部。由于单击事件似乎无法从XAML访问,因此如何将其添加到此项目?
<Page
x:Class="My_Project.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<NavigationView>
<NavigationView.PaneFooter>
</NavigationView.PaneFooter>
</NavigationView>
</Grid>
</Page>
答案
如何将单击事件添加到该项目,因为它似乎无法从XAML访问?
[设置]按钮单击事件已由NavigationView.ItemInvoked Event处理。在文档NavigationView中将其提到为“当用户点击导航项目时,导航视图将显示该项目为选中状态并引发ItemInvoked event。”
因此您只需要处理NavigationView.ItemInvoked事件并检查NavigationViewItemInvokedEventArgs.IsSettingsInvoked Property。
这里是您可以参考的代码:
<Grid>
<NavigationView ItemInvoked="NavigationView_ItemInvoked">
<NavigationView.PaneFooter>
</NavigationView.PaneFooter>
</NavigationView>
</Grid>
在后面的代码中:
private void NavigationView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
if (args.IsSettingsInvoked == true)
{
//do something
}
}
更新
如果要检查项目是否为特定项目,可以在Xaml中为navigationview项目设置标签属性,然后在ItemInvoked事件中检查此属性。
在xaml中:
<NavigationViewItem Tag="home" Icon="Home" Content="Home"/>
在后面的代码中:
private void NavigationView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
var navItemTag = args.InvokedItemContainer.Tag.ToString();
if (navItemTag.Equals("home"))
{
// do something
Debug.WriteLine("test");
}
}
以上是关于如何处理NavigationView PaneFooter设置项单击的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 MaxUploadSizeExceededException