Windows8 Split Navi

Split App をテンプレートに使った Navigate のプログラムです。

前田稔(Maeda Minoru)の超初心者のプログラム入門

Group, Item を識別

  1. このプロジェクトは Windows8 Split の続きです。
    Windows8 Split では、赤色の Blank Page1 を作成して遷移しましたが、赤,緑,青の三種類のページを作成して遷移してみましょう。
    Blank Page の作成は Group, Item を識別 を参照して下さい。
    SplitPage.xaml.cs に Item を識別して BlankPage(赤,緑,青) に遷移するコードを書きます。
    ItemListView_SelectionChanged() がマウスのクリックを検出するメソッドです。
    Grid App では ItemView_ItemClick() でしたが、Split App では ItemListView_SelectionChanged() を使っています。
    ItemListView_SelectionChanged() では、選択された Item のインデックス番号を取得することが出来ます。
    int n= itemListView.SelectedIndex;
  2. ItemListView_SelectionChanged() では、SplitPage を開くと「先頭アイテムが選択状態」になっていることがあります。
    Navigate するときは、右クリックで解除してから左クリックして下さい。
  3. BlankPage1(赤), BlankPage2(緑) から戻るときは SplitPage に戻ります。
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(SplitPage), "Group-1");
        }
        
    BlankPage3(青)から戻るときは、SplitPage では無く ItemsPage に遷移してみて下さい。
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(ItemsPage), "AllGroups");
        }
        
  4. GroupID(g_str) は SplitPage.xaml.cs の LoadState() で取得します。
    詳細は Group, Item を識別 を参照して下さい。
    SplitPage.xaml.cs の ItemListView_SelectionChanged() に Group を識別して遷移するコードを書きます。
    Windows10 でも同様のプログラム Group, Item を識別 を作成しています。
        void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {      ・・・
            if (g_str=="Group-1")
            {   int n = itemListView.SelectedIndex;
                switch(n)
                {   case 0:
                        this.Frame.Navigate(typeof(BlankPage1), "AllGroups");   //赤
                        break;
                    case 1:
                        this.Frame.Navigate(typeof(BlankPage2), "AllGroups");   //緑
                        break;
                    case 2:
                        this.Frame.Navigate(typeof(BlankPage3), "AllGroups");   //青
                        break;
                }
            }
        }
        

Uri & File を表示

  1. Uri & File を表示する前に、このアプリケーションに対応した Title を設定して下さい。
    Title の内容は、読者に一任します。
    Title の設定方法は Grid Uri を参照して下さい。
  2. 既定のアプリケーション(IE)でホームページを表示します。
    SplitPage.xaml.cs の ItemListView_SelectionChanged() に "Group-2" を追加します。
        void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {   ・・・
            if (this.UsingLogicalPageNavigation())  this.InvalidateVisualState();
    
            Uri uri= null;
            int n;
            n = itemListView.SelectedIndex;
            if (g_str=="Group-1")
            {   switch(n)
                {   case 0:
                        this.Frame.Navigate(typeof(BlankPage1), "AllGroups");   //赤
                        break;
                    case 1:
                        this.Frame.Navigate(typeof(BlankPage2), "AllGroups");   //緑
                        break;
                    case 2:
                        this.Frame.Navigate(typeof(BlankPage3), "AllGroups");   //青
                        break;
                }
            }
            if (g_str=="Group-2")
            {   switch (n)
                {   case 0:
                        uri = new Uri("http://www.eonet.ne.jp/~maeda/image/cs.jpg");
                        break;
                    case 1:
                        uri = new Uri("http://www.eonet.ne.jp/~maeda/index.html");
                        break;
                    case 2:
                        uri = new Uri("http://www.google.co.jp/");
                        break;
                }
                if (uri!=null)  Windows.System.Launcher.LaunchUriAsync(uri);
            }
        }
        
  3. ItemListView_SelectionChanged() では、SplitPage に遷移すると先頭アイテムが選択されて、いきなり表示されることがあります。
    他のページを選択するときは、次のように操作して下さい。
    1. SplitPage に遷移すると、いきなり先頭ページが表示される
    2. Windowキーでホームページを終了して Metro Style の画面に戻る
    3. Metro Style からタイル(アイコン画像)をクリックして、アプリを再起動する
    4. SplitPage が表示される
    5. 他の項目を選択する

ファイルを開く

  1. 既定のアプリケーションでファイルを開きます。
    プロジェクトに画像ファイルとテキストファイルを取り込んで下さい。
    画像ファイルは @"image\ffx2s.jpg" で、テキストファイルは @"text\data.txt" です。
    詳細は Grid File を参照して下さい。
  2. SplitPage.xaml.cs の ItemListView_SelectionChanged() に "Group-3" を追加します。
        async void ItemListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {   ・・・
            if (this.UsingLogicalPageNavigation())  this.InvalidateVisualState();
    
            Uri uri= null;
            string filename= null;
            int n;
            n = itemListView.SelectedIndex;
            if (g_str=="Group-1")
            {
                // "Group-1" は BlankPage に遷移します。
                // 上記のソースコードを参照して下さい。
            }
            if (g_str=="Group-2")
            {
                // "Group-2" は Uri(URL) を表示します。
                // 上記のソースコードを参照して下さい。
            }
            if (g_str=="Group-3")
            {   switch (n)
                {   case 0:
                        filename = @"image\ffx2s.jpg";
                        break;
                    case 1:
                        filename = @"text\data.txt";
                        break;
                }
                if (filename != null)
                {   var file= await Windows.ApplicationModel.Package.Current.
                        InstalledLocation.GetFileAsync(filename);
                    if (file != null)
                        Windows.System.Launcher.LaunchFileAsync(file);
                }
            }
        

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