Xaml Page Navigate

Navigate(遷移)先を XAML で定義します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. navigate は [船舶・航空機などを] 操縦するの意味で使われます。
    ここでは、現在のウインドウから次々とウインドウを移ることを Navigate(遷移 せんい)と呼び、その基本を説明します。
    XAML 上で遷移先を定義して Navigate(遷移)します。
    WPF で NavigationWindow を使うと「←→」ボタンが自動的に設定されます。
  2. 新規プロジェクトから[WPF アプリ(.NET Framework)] を構築します。
    規定値で [プロジェクト名=WpfApp1][namespace=WpfAppl] になっています。
  3. Navigate(遷移)するページを作成します。
    メニューの[プロジェクト][新しい項目の追加]から[ページ(WPF)] を2枚追加します。
    ソリューションエクスプローラに Page1.xaml, Page2.xaml が追加されます。
  4. Page1.xaml から Page2 に移動するように設定します。
    文字の色を赤に、サイズを 32 ポイントで印字します。
    <Page x:Class="WpfApp1.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" 
          xmlns:local="clr-namespace:WpfApp1"
          mc:Ignorable="d" 
          d:DesignHeight="300" d:DesignWidth="400"
          Title="Page1">
        <Hyperlink NavigateUri="Page2.xaml" Foreground="#FFF01010" FontSize="32">
            Page1 → Page2 に移動
        </Hyperlink>
    </Page>
    
  5. Page2.xaml から Page1 に移動するように設定します。
    文字の色を緑に、サイズを 32 ポイントで印字します。
    <Page x:Class="WpfApp1.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" 
          xmlns:local="clr-namespace:WpfApp1"
          mc:Ignorable="d" 
          d:DesignHeight="300" d:DesignWidth="400"
          Title="Page2">
        <Hyperlink NavigateUri="Page1.xaml" Foreground="#FF10F010" FontSize="32">
            Page2 → Page1 に移動
        </Hyperlink>
    </Page>
    
  6. MainWindow.xaml を修正して NavigationWindow を使います。
    <NavigationWindow x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="500">
    </NavigationWindow>
    
  7. MainWindow.xaml.cs から Navigate(new Page1()) で Page1 を呼び出します。
    namespace WpfApp1
    {   public partial class MainWindow : NavigationWindow
        {   public MainWindow()
            {   InitializeComponent();
                Navigate(new Page1());
            }
        }
    }
    
  8. コンパイル&実行すると Page1 が表示されます。
    [Page1 → Page2 に移動] をクリックすると Page2 にナビゲートします。
    [Page2 → Page1 に移動] をクリックすると Page1 にナビゲートします。
    Back(←), Next(→)のリンクボタンが効いていることも確認して下さい。
  9. コンパイルエラーになる最も多い原因は、namespace(名前空間)が統一されていないことです。
    全てのソースで WpfAppl になっていることを確認して下さい。

超初心者のプログラム入門(C# Frame Work)