是否有Windows 8.1 SettingsFlyout的替代方法在Windows 10 UWP开发中

本文关键字:Windows 方法 开发 UWP SettingsFlyout 是否 | 更新日期: 2023-09-27 18:32:48

我目前正在开发一个Windows 10 UWP应用程序。在升级到Windows 10之前,我在Windows 8.1中使用了SettingsFlyout类。现在我在堆栈溢出上红了,Windows 10不支持这个类。

那么,Windows 10 UWP 中的浮出控件是否有一个好的替代方案,它具有相同或相似的处理方式?

是否有Windows 8.1 SettingsFlyout的替代方法在Windows 10 UWP开发中

如果要

替换"设置"浮出控件,则有一些可能的方法
1. 添加设置页面.xaml 页面,其中包含应用栏的设置和导航:

<Page.TopAppBar>
    <CommandBar IsOpen="False" ClosedDisplayMode="Minimal">
        <CommandBar.PrimaryCommands>
<AppBarButton x:Name="btnSettings" Label="Settings" Click="btnSettings_Click" Icon="Setting"  >
            </AppBarButton>
        </CommandBar.PrimaryCommands>
    </CommandBar>
</Page.TopAppBar>

并实现点击事件:

 private void btnSettings_Click(object sender, RoutedEventArgs e)
    {
        this.Frame.Navigate(typeof(SettingsPage));
    }

但在这种情况下,最好添加"后退"按钮。
在 OnLaunch 事件结束时添加:

rootFrame.Navigated += OnNavigated;
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;

并添加:

   private void OnNavigated(object sender, NavigationEventArgs e)
    {
 SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
        ((Frame)sender).CanGoBack ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed;
    }
    private void OnBackRequested(object sender, BackRequestedEventArgs e)
    {
        Frame rootFrame = Window.Current.Content as Frame;
        if (rootFrame.CanGoBack)
        {
            e.Handled = true;
            rootFrame.GoBack();
        }
    }

2. 还要添加带有设置的 xaml 页面,但使用带有 SplitView 控件的导航并创建汉堡菜单

Windows 10 SplitView – 构建您的第一个汉堡菜单
实现简单的汉堡导航菜单

3. 将设置移动到内容对话框

4. 如果没有太多设置,可以将它们放入浮出控件中

<Button Content="Settings">
<Button.Flyout>
<MenuFlyout>
<ToggleMenuFlyoutItem Text="Toggle Setting" />
<MenuFlyoutSeparator />
<MenuFlyoutItem Text="Setting 1" />
<MenuFlyoutItem Text="Setting 2" />
<MenuFlyoutItem Text="Setting 3" />
</MenuFlyout>
</Button.Flyout>
</Button>