【ストアアプリ】画面遷移の基本①

公開日: : 最終更新日:2015/10/20 Blog, Microsoft , ,

こんにちは。
Windowsストアアプリをぼちぼち触り始めています。
WindowsRuntime向け.NET Frameworkのお蔭により、今までの知識で
どれが使えてどれが使えないのかの整理がまだ出来ていません。
(VB名前空間のStringsがほぼ使えなくて泣いた…。)

さて、今日は画面遷移回りを触ってみようと思います。

以下を参考にしています。
クイック スタート: ページ間のナビゲーション (XAML)

Frame.Navigateによる遷移が推奨されているらしいです。
ストアアプリのテンプレートでもNavigateメソッドが使われております。

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    Frame rootFrame = Window.Current.Content as Frame;
    if (rootFrame == null)
    {
        rootFrame = new Frame();
        rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
        rootFrame.NavigationFailed += OnNavigationFailed;
        if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
        {
            //TODO: 以前中断したアプリケーションから状態を読み込みます。
        }

        Window.Current.Content = rootFrame;
    }
    if (rootFrame.Content == null)
    {
        rootFrame.Navigate(typeof(MainPage), e.Arguments);
    }
    Window.Current.Activate();
}

第一引数に遷移先の型、第二引数に起動パラメータのようです。
OnLaunchedの場合は、LaunchActivatedEventArgsをMainPageに渡しています。

まずはApp起動→MainPage表示→ボタン押下で別ページを表示を実装してみましょう。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Text="MainPage" FontSize="100" VerticalAlignment="Center" HorizontalAlignment="Center" />
        <Button Content="Page1" Click="Button_Click_1" FontSize="100" />
    </StackPanel>
</Grid>
private void Button_Click_1(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Page1), "");
}
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock Text="Page1" FontSize="100" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>

screenshot_03232015_162323

screenshot_03232015_162344

遷移は出来ました。
次回はパラメータを渡してみます。

関連記事

no image

【UWP】CS1061 : ‘XXX’に’InitializeComponent’の定義が含まれておらず

いろいろなことに起因しており、引き起こされた問題であって、 根本的な原因ではない可能性はあるが、凡ミ

記事を読む

Hardware assisted virtualization and data execution protection must be enabled in the BIOS

MacBook Pro + Bootcamp + Windows10 で Docker for Wi

記事を読む

UWPでユニットテスト

ユニバーサルWindowsのアプリケーションプロジェクトおよびクラスライブラリプロジェクトのユニット

記事を読む

no image

UWPでOSバージョン番号の取得

Windows.System.Profile.AnalyticsInfo.VersionInfo.D

記事を読む

Xamarin.FormsのTabbedPageでバッジを表示する

iOSのタブバーはNative側でバッジ機能があるのだが、Androidにはそもそもバッジが無いらし

記事を読む

【ストアアプリ】トースト通知の基本

Windowsストアアプリ開発での基本。 トースト通知について投稿します。 Pack

記事を読む

no image

【XAML/VB.NET】XAMLファイルを帳票フォーマットとして使用する

掲題について。結論としてはFixedPageをルートとするXAMLファイルを XamlReader

記事を読む

no image

【.NET】正規表現の復習

正規表現エンジン System.Text.RegularExpressions.Regexオブジェ

記事を読む

Docker for Windows で ドライブ共有が出来ない

Shared Drives タブで Cドライブにチェックをして Apply を押す。 認証ダイ

記事を読む

no image

BOT向け自然言語処理サービスまとめ

自然言語処理 自然言語処理(しぜんげんごしょり、英語: natural language p

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑