歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

編程創建 Windows Phone 的全景應用 (Panorama)

在這個教程中我們將學習如何創建一個包含動態全景控件的 Windows Phone 7 應用程序。關於什麼是全景控件請看本文最後的運行截圖。

首先打開 Visual Studip 2010 並創建一個新的 Sliverlight for Windows Phone 7 的項目:

開始編碼之前,我們通過添加引用選項來添加 Microsoft.Phone.Controls 的引用,並在 XAML 代碼中包含命名空間,並刪除 xaml 代碼中的默認內容:

現在讓我們開始編碼。全景空間包含不同的標題和條目:

  01 private List<string> CreatePanoramaItems(string item) 02 { 03     List<String> Panoramaitems = null; 04     switch (item) 05     { 06     case "Page1": 07         Panoramaitems = new List<string> { "Page1Item1", "Page1Item2", "Page1Item3"}; 08         break; 09     case "Page2": 10         Panoramaitems = new List<string> { "Page2Item1", "Page2Item2", "Page2Item3" }; 11         break; 12     case "Page3": 13         Panoramaitems = new List<string> { "Page3Item1", "Page3Item2", "Page3Item3" }; 14         break; 15     } 16     return Panoramaitems; 17 } 18    19 private List<string> CreatePanoramaHeaders() 20 { 21     return new List<string> { "Page1", "Page2", "Page3" }; 22 }

接下來是添加裝載事件,當頁面加載時我們要裝載動態的全景控件,並自定義標題和列表項:

  01 private void MainPage_Loaded(object sender, RoutedEventArgs e) 02 { 03    //Initializing the Panorama Control and Assigning base values 04    Panorama panoramactrl = new Panorama(); 05    panoramactrl.Title = "F5Debug How To"; 06    panoramactrl.SelectionChanged += panoramaCtrl_SelectionChanged; 07      08    //Initializing the Panorama Control Items 09    PanoramaItem panoramaCtrlItem = new PanoramaItem(); 10    panoramaCtrlItem.Header = "Dynamic Panorama"; 11    12    //Initializing Textblock to display some text 13    TextBlock textBlock = new TextBlock(); 14    textBlock.TextWrapping = TextWrapping.Wrap; 15    textBlock.Text = "F5debug.Net – Building and Debugging the Technology"; 16    textBlock.FontSize = 20; 17    panoramaCtrlItem.Content = textBlock; 18    19    panoramactrl.Items.Add(panoramaCtrlItem); 20    21    foreach (string Eachitems in CreatePanoramaHeaders()) 22    { 23        panoramaCtrlItem = new PanoramaItem(); 24        panoramaCtrlItem.Header = Eachitems; 25        panoramactrl.Items.Add(panoramaCtrlItem); 26    } 27    28    this.LayoutRoot.Children.Add(panoramactrl); 29 } 30    31 private void panoramaCtrl_SelectionChanged(object sender, SelectionChangedEventArgs e) 32 { 33    Panorama panoramactrl = (Panorama)sender; 34    PanoramaItem panoramaItem = (PanoramaItem)(panoramactrl.SelectedItem); 35    36    if (panoramaItem.Content == null) 37    { 38        ListBox listBox = new ListBox(); 39        listBox.ItemsSource = CreatePanoramaItems(panoramaItem.Header.ToString()); 40        panoramaItem.Content = listBox; 41    } 42 }

完整代碼列表:

  01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Net; 05 using System.Windows; 06 using System.Windows.Controls; 07 using System.Windows.Documents; 08 using System.Windows.Input; 09 using System.Windows.Media; 10 using System.Windows.Media.Animation; 11 using System.Windows.Shapes; 12 using Microsoft.Phone.Controls; 13    14 namespace F5debugHowto43 15 { 16     public partial class MainPage : PhoneApplicationPage 17     { 18         // Constructor 19         public MainPage() 20         { 21             InitializeComponent(); 22             this.Loaded += new RoutedEventHandler(MainPage_Loaded); 23         } 24    25         private List<string> CreatePanoramaItems(string item) 26         { 27             List<String> Panoramaitems = null; 28             switch (item) 29             { 30                 case "Page1": 31                     Panoramaitems = new List<string> { "Page1Item1", "Page1Item2", "Page1Item3"}; 32                     break; 33                 case "Page2": 34                     Panoramaitems = new List<string> { "Page2Item1", "Page2Item2", "Page2Item3" }; 35                     break; 36                 case "Page3": 37                     Panoramaitems = new List<string> { "Page3Item1", "Page3Item2", "Page3Item3" }; 38                     break; 39             } 40             return Panoramaitems; 41         } 42    43         private List<string> CreatePanoramaHeaders() 44         { 45             return new List<string> { "Page1", "Page2", "Page3" }; 46         } 47    48         private void MainPage_Loaded(object sender, RoutedEventArgs e) 49         { 50             //Initializing the Panorama Control and Assigning base values 51             Panorama panoramactrl = new Panorama(); 52             panoramactrl.Title = "F5Debug How To"; 53             panoramactrl.SelectionChanged += panoramaCtrl_SelectionChanged; 54               55             //Initializing the Panorama Control Items 56             PanoramaItem panoramaCtrlItem = new PanoramaItem(); 57             panoramaCtrlItem.Header = "Dynamic Panorama"; 58    59             //Initializing Textblock to display some text 60             TextBlock textBlock = new TextBlock(); 61             textBlock.TextWrapping = TextWrapping.Wrap; 62             textBlock.Text = "F5debug.Net – Building and Debugging the Technology"; 63             textBlock.FontSize = 20; 64             panoramaCtrlItem.Content = textBlock; 65    66             panoramactrl.Items.Add(panoramaCtrlItem); 67    68             foreach (string Eachitems in CreatePanoramaHeaders()) 69             { 70                 panoramaCtrlItem = new PanoramaItem(); 71                 panoramaCtrlItem.Header = Eachitems; 72                 panoramactrl.Items.Add(panoramaCtrlItem); 73             } 74    75             this.LayoutRoot.Children.Add(panoramactrl); 76         } 77    78         private void panoramaCtrl_SelectionChanged(object sender, SelectionChangedEventArgs e) 79         { 80             Panorama panoramactrl = (Panorama)sender; 81             PanoramaItem panoramaItem = (PanoramaItem)(panoramactrl.SelectedItem); 82    83             if (panoramaItem.Content == null) 84             { 85                 ListBox listBox = new ListBox(); 86                 listBox.ItemsSource = CreatePanoramaItems(panoramaItem.Header.ToString()); 87                 panoramaItem.Content = listBox; 88             } 89         } 90    91     } 92 }

現在我們已經完成了所有的編碼工作,按 F5 直接運行看看效果,如果編譯成功的話會打開 Windows Phone 模擬器,然後你可以看到如下運行結果:

Output Screen:

在這個教程中,我們學習如何編程加載動態的全景控件以及自定義標題和列表項。

Happy Programming!!!

Copyright © Linux教程網 All Rights Reserved