如何处理UWP NavigationView中的设置按钮的单击事件?

时间:2019-06-13 03:28:44

标签: c# xaml uwp

我发现,官方NavigationView是在Visual Studio的较新版本中引入的,可以帮助轻松实现Hamburger布局,并且通过将属性IsSettingsVisible设置为True,可以自动进行是底部的设置按钮。

我的问题很简单:如何处理此设置按钮的click事件?我找不到任何相应的属性。

<NavigationView PaneDisplayMode="LeftCompact" IsSettingsVisible="True">
    <!--I'm expecting some codes like below-->
    <NavigationView.SettingsButton Click="SettingsButton_Click"/>
</NavigationView>

2 个答案:

答案 0 :(得分:1)

ItemInvoked事件中注册一个新方法,并检查是否通过此方法调用了“设置”按钮:

C#:

private async void NavigationView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args) {
    if (args.IsSettingsInvoked) {
        // Code here
    }
}

XAML:

<NavigationView IsSettingsVisible="True" ItemInvoked="NavigationView_ItemInvoked">
    <!-- Your XAML -->
</NavigationView>

答案 1 :(得分:1)

拉莫斯(Ramos)答案的缺点是,当单击设置按钮时也会被选中。如果您想打开一个内容对话框,那很可能不是适合您的解决方案。我发现了另一种方法:

null

还要确保使用<NavigationView.PaneFooter> <Button Background="Transparent" BorderThickness="1" HorizontalAlignment="Center" Height="40" Width="40" Click="SettingsButton_OnClick"> <SymbolIcon Symbol="Setting"/> </Button> </NavigationView.PaneFooter> 禁用其他设置按钮。

注:导航视图的默认图标大小会随着时间的变化而变小。将来40 Pixel可能不再是正确的尺寸。您当然可以轻松地纠正它。 Link to the issue