Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

ナビゲーションとページ(マークアップ)

前回(以下のエントリー)と同じ機能をマークアップで実装します。
ナビゲーションとページ(ビハインドコード) - プログラマーな日々
今回はマークアップを使わずにビハインドコードでナビゲーションを実装します。 ...

App.xaml

<Application x:Class="HelloWorld.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
</Application>

MainWindow.xaml

<NavigationWindow x:Class="HelloWorld.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        Source="Page1.xaml">
</NavigationWindow>

Page1.xaml

<Page x:Class="HelloWorld.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
      WindowTitle="トップページ">
    <TextBlock>
        <Hyperlink NavigateUri="Page2.xaml">
            ページ2に移動
        </Hyperlink>
    </TextBlock>
</Page>

Page2.xaml

<Page x:Class="HelloWorld.Page2"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
    WindowTitle="ページ2">
    <TextBlock>ページ2</TextBlock>
</Page>

アプリ実行

ページ1


ページ2


検証

項目 結果
リンクをクリックするとページ2に遷移する。 OK
ページ2に遷移すると戻るボタンが有効になる。 OK
戻るボタンをクリックするとページ1に遷移する。 OK
ページ1に遷移すると進むボタンが有効になる。 OK
進むボタンをクリックするとページ2に遷移する。 OK