我目前正在开发Windows 10 UWP应用程序。在我升级到Windows 10之前,我在Windows 8.1中使用了SettingsFlyout类。现在我在stackoverflow上重新启动,Windows 10不支持此类。
对于具有相同或类似处理功能的Windows 10 UWP中的弹出窗口是否有一个很好的替代方案?
答案 0 :(得分:1)
如果你想更换设置弹出窗口,那么有一些可能的方法
的 1。添加SettingsPage.xaml页面,其中包含AppBar中的设置和导航:
<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));
}
但在这种情况下,最好添加Back按钮 在OnLaunched事件结束时添加:
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 – Build Your First Hamburger Menu
Implementing a Simple Hamburger Navigation Menu
第3。将设置移至ContentDialog
<强> 4。如果您没有太多设置,可以将它们放入Flyout控件
<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>