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

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

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

関連記事

UWPをHockeyApp対応させる

走り書きメモ。 UWPをHockeyApp対応させるためにはNuGetパッケージを使ってモジュール

記事を読む

no image

【UWP】矢印キーでのフォーカス移動

FocusManagerで上下左右のフォーカス遷移が出来るので、その仕組みを利用してやるビヘイビアを

記事を読む

no image

【iPhoneアプリ】Nend広告の実装メモ

広告枠の作成 https://www.nend.net/ 審査前アプリのURL iPhon

記事を読む

no image

RPi3 OmxPlayer / VLC Player 連続再生2回目から映像が乱れる問題

Raspberry Pi 3 Model の Ubuntu や Raspbian で OmxPlay

記事を読む

Xamarin Studio から Visual Studio for Mac へ変更してから、”The “XamlCTask” task failed unexpectedly.” が発生。

Visual Studio for Mac がGAしたので、インストールしてみた。 それまで開発して

記事を読む

no image

【TFS2013】Visual Studio 2005 Professional から TFS2013へ接続

こんにちは。 私の周りではいまだにレガシーな開発環境を使いつづけているプロジェクトが多いです。

記事を読む

Visual Studio から Android SDK Managerが起動できない

Android SDKやエミュレーターイメージのアップデートを行いたい場合にAndroid SDK

記事を読む

no image

macOSのVSTSビルドエージェント構築過程で、type initializeで例外が発生し接続に失敗する問題の対応

macOS Sierra (10.12.4) Deploy an agent on OSX Xa

記事を読む

Xamarin.Forms + Visual Studio Team Services ビルドタスクで自動バージョンアップ

Visual Studio Team Services で Xamarin.Forms の継続的デリ

記事を読む

no image

【ストアアプリ】基本的な印刷手順

Windowsストアアプリにて印刷を行う方法を紹介します。 印刷を行うには印刷コントラ

記事を読む

Message

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

PAGE TOP ↑