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

公開日: : 最終更新日: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

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

関連記事

[OxyPlot]errro CS0117: ‘Resource.Attribute’ に ‘mediaRouteSettingsDrawable’ の定義がありません

Xamarin.Formsでグラフ描画を行う方法のひとつにOxyPlotというライブラリがある。

記事を読む

no image

Xamarin.Forms で Opacityを設定したGridの表示・非表示を切り替えると、Androidで例外が発生する(Xamarin.Forms 2.3.3.193)

Xamarin 2.3.3.163 あたりから発生するようになったバグ情報があり 実行環境は 2.3

記事を読む

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

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

記事を読む

Xamarin iOS, Android での位置情報、Bluetoothの有効化メモ

OSが勝手に出してくれたりくれなかったりのところを整理するためのメモ 諸事情によりサンプルはXama

記事を読む

no image

Microsoft.Expression.Encoderで動画のフレーム画像を取得

動画ファイルから指定したフレーム画像を取得する。 Microsoft.Expression.Enco

記事を読む

no image

Desktop App Converter で作成したUWPアプリケーションをストアで公開したい

Twitterで掲題について調べている人がいらっしゃって、一緒に調べてみたのだが 案内されているペー

記事を読む

【WPF/XAML】チェックボックスのデザイン変更

[xml] <Window x:Class="Sample"

記事を読む

no image

【.NET】正規表現の復習

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

記事を読む

no image

Xamarin.Android フルスクリーン

自分用メモです。

記事を読む

no image

Windows 10 IoT Core の 製品化メモ

概念実証(Proof of concept)を終了し、製品化を行いたい場合のステップ サインア

記事を読む

Message

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

PAGE TOP ↑