如何在** ** WinRT中使用C#应用程序中查看具体设置页面?(how to view spec

2019-08-01 04:45发布

如何在WinRT的应用程序中使用C#从外部按钮点击查看特定的设置页面?

在JavaScript中,我发现这样的WinJS.UI.SettingsFlyout.showSettings(“关于”,“/Settings/About.html”)

但我没能找到这在C#中,我使用了木卫四设置弹出按钮

Answer 1:

我使用的是木卫四和C#也一样,这是我如何解决了这个问题。

    void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
    {
        var settings = new SettingsCommand("settings", "Settings", new UICommandInvokedHandler(showSettings));
        args.Request.ApplicationCommands.Add(settings);
        var credits = new SettingsCommand("credits", "Credits", new UICommandInvokedHandler(showCredits));
        args.Request.ApplicationCommands.Add(credits);
    }

    public void showSettings(IUICommand command)
    {
        var settings = new SettingsFlyout();
        settings.Content = new SettingsUserControl();
        settings.HeaderBrush = new SolidColorBrush(_background);
        settings.Background = new SolidColorBrush(_background);
        settings.HeaderText = "Settings";
        settings.IsOpen = true;
    }

    public void showCredits(IUICommand command)
    {
        var settings = new SettingsFlyout();
        settings.Content = new CreditsUserControl();
        settings.HeaderBrush = new SolidColorBrush(_background);
        settings.Background = new SolidColorBrush(_background);
        settings.HeaderText = "Credits";
        settings.IsOpen = true;
    }

然后从其他网页我可以叫

((App)Application.Current).showCredits(null);  

要么

((App)Application.Current).showSettings(null);

要打开设置窗格我想看看:O)



Answer 2:

第一步是对SettingsPane添加一个侦听器CommandsRequest事件要被显示在设置页面。 例如:

SettingsPane.GetForCurrentView().CommandsRequested += MainPage_CommandsRequested;

然后定义事件处理程序

void MainPage_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
    SettingsCommand generalCommand = new SettingsCommand("GeneralSettings", ResourceLoader.GetString("GeneralText"), (x) =>
    {
        SettingsFlyout settings = new SettingsFlyout();
        settings.HeaderBrush = Resources["SettingsHeaderBrush"] as SolidColorBrush;
        settings.HeaderText = ResourceLoader.GetString("GeneralText");
        settings.Background = new SolidColorBrush(Windows.UI.Colors.White);
        settings.Content = new GeneralSettingsFlyout();
        settings.IsOpen = true;
        settings.Height = Window.Current.Bounds.Height;

        // Optionally, add a closed event handler
        settings.Closed += settings_Closed;
    });
}

请注意,在这种情况下,GeneralSettingsFlyout仅仅是将一旦选择特定的设置进入设置面板中被加载(木卫四自动处理此)的页面。

SettingsFlyout是木卫四的类。



Answer 3:

编辑您的App.xaml文件,并引用此片段为您的代码:

App::OnLaunched()
{
.
.
     var rootFrame = new CharmFrame { CharmContent = new CharmFlyouts() };
     SuspensionManager.RegisterFrame(rootFrame, "AppFrame");
.
.
}

然后,当你想显示设置,这样做:

SomeOtherMethod()
{
     ((Window.Current.Content as CharmFrame).CharmContent as CharmFlyouts).ShowSettings();
}


文章来源: how to view specific setting page in **winrt** application using C#?