外部ボタンクリックからC#を使用してwinrtアプリケーションで特定の設定ページを表示する方法は?
javascriptで、この WinJS.UI.SettingsFlyout.showSettings( "About"、 "/Settings/About.html")のように見つかりました
しかし、私はこれをc#で見つけることができませんでした、私はフライアウトの設定にカリストを使用しています
外部ボタンクリックからC#を使用してwinrtアプリケーションで特定の設定ページを表示する方法は?
javascriptで、この WinJS.UI.SettingsFlyout.showSettings( "About"、 "/Settings/About.html")のように見つかりました
しかし、私はこれをc#で見つけることができませんでした、私はフライアウトの設定にカリストを使用しています
私もCallistoと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)
最初のステップは、設定を表示するページの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は、特定の設定が選択されると設定ペインに読み込まれる単なるページであることに注意してください(Callistoがこれを自動的に処理します)。
SettingsFlyoutは、Callistoのクラスです。
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();
}