成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

31天學會Windows Phone 7開發:樞軸控件

移動開發
本文是《Windows Phone 7開發31日談》系列的第十七篇文章。上一篇,我們討論了全景視圖控件以及它的作用和使用方法。本文,我們要講一個和它很相似但又不同的控件,樞軸控件。

本文是《Windows Phone 7開發31日談》系列的第十七篇文章。上一篇,我們討論了全景視圖控件以及它的作用和使用方法。本文,我們要講一個和它很相似但又不同的控件,樞軸控件。

什么是樞軸控件?

我把樞軸控件看作是一個可以給用戶提供相同數據的不同“層”的有效控件。例如,Windows Phone中的日歷,你可以在“日程表”和“天”兩個視圖間來回切換。它們呈現相同的數據,但卻在兩個完全不同的視圖中。樞軸控件另一個出色的應用是將項目進行分類。電話中的設置功能就是一個很好的例子。你可以對系統進行設定,或對應用程序進行設定。下面來快速瀏覽一下這些例子:

Windows Phone 7樞軸控件 

Windows Phone 7樞軸控件

使用全景視圖或樞軸控件有沒有特定的場合?

是的,確實有。去這兩個好地方你可以看到更多的信息。Tim Heuer寫的何時你該使用這兩個控件的優秀文章,還有Channel 9上的Windows Phone Design Days系列視頻。

我的原則很簡單:

◆使用全景視圖控件來介紹你程序中每一個有趣的內容。

◆當你想向用戶以不同的方式展示相同的數據時使用樞軸控件。

使用樞軸控件

如果你沒有看昨天的關于全景視圖控件的文章,快去看看。我介紹了如何在Visual Studio 2010工具箱中獲得全景視圖和樞軸控件?,F在,我們來深入探究樞軸控件的結構,以及如何使用它。

它的結構非常類似于全景視圖控件,但在今天的例子中,不使用靜態內容,我要將將數據綁定到ListBox控件中,使用DataTemplate來實現。下面是我添加任何內容之前的基礎樞軸控件(這個例子按性別顯示了嬰兒的名字):

  1. <controls:Pivot Title="BABY NAMES"> 
  2.     <controls:PivotItem Header="boys"> 
  3.     </controls:PivotItem> 
  4.     <controls:PivotItem Header="girls"> 
  5.     </controls:PivotItem> 
  6.     <controls:PivotItem Header="either">          
  7.     </controls:PivotItem> 
  8. </controls:Pivot> 

很明顯,沒有數據我們看不到什么。下面繼續。

在ListBox中使用DataTemplate

對于每個PivotItem,我都添加了一個ListBox,并且在ListBox中,我會定義一個描述了每個數據項如何顯示的ItemTemplate。下面是我添加的XAML代碼:

  1. <controls:Pivot Title="BABY NAMES"> 
  2.     <controls:PivotItem Header="boys"> 
  3.         <ListBox x:Name="boyList" Margin="0,0,-12,0"> 
  4.             <ListBox.ItemTemplate> 
  5.                 <DataTemplate> 
  6.                     <StackPanel Margin="0,0,0,17" > 
  7.                         <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
  8.                     </StackPanel> 
  9.                 </DataTemplate> 
  10.             </ListBox.ItemTemplate> 
  11.         </ListBox> 
  12.     </controls:PivotItem> 
  13.     <controls:PivotItem Header="girls"> 
  14.         <ListBox x:Name="girlList" Margin="0,0,-12,0"> 
  15.             <ListBox.ItemTemplate> 
  16.                 <DataTemplate> 
  17.                     <StackPanel Margin="0,0,0,17" > 
  18.                         <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
  19.                     </StackPanel> 
  20.                 </DataTemplate> 
  21.             </ListBox.ItemTemplate> 
  22.         </ListBox> 
  23.     </controls:PivotItem> 
  24.     <controls:PivotItem Header="either"> 
  25.         <ListBox x:Name="allList" Margin="0,0,-12,0"> 
  26.             <ListBox.ItemTemplate> 
  27.                 <DataTemplate> 
  28.                     <StackPanel Margin="0,0,0,17" > 
  29.                         <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
  30.                     </StackPanel> 
  31.                 </DataTemplate> 
  32.             </ListBox.ItemTemplate> 
  33.         </ListBox> 
  34.     </controls:PivotItem> 
  35. </controls:Pivot> 

在這個系列中我們沒有提到DataBinding。你會注意到對于每個TextBlock,Text屬性的值都被定義為“{Binding Name}”。這意味著不論我向ListBox中傳入任何對象,TextBlock都會使用對象的Name屬性當做它的Text屬性值。為了向ListBox中存入數據,我們要在代碼后置的文件中寫少許代碼(這是MainPage.xaml.cs文件的所有內容):

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Net;  
  5. using System.Windows;  
  6. using System.Windows.Controls;  
  7. using System.Windows.Documents;  
  8. using System.Windows.Input;  
  9. using System.Windows.Media;  
  10. using System.Windows.Media.Animation;  
  11. using System.Windows.Shapes;  
  12. using Microsoft.Phone.Controls;  
  13.  
  14. namespace Day17_PivotControl  
  15. {  
  16.     public partial class MainPage : PhoneApplicationPage  
  17.     {  
  18.         BabyName[] names = new BabyName[10] {new BabyName("Steve", 1, 0),  
  19.                     new BabyName("Jennifer", 2, 0),  
  20.                     new BabyName("Alex", 1, 2),  
  21.                     new BabyName("Casey", 1, 2),  
  22.                     new BabyName("Quinn", 1, 2),  
  23.                     new BabyName("Anthony", 1, 0),  
  24.                     new BabyName("Sarah", 2, 0),  
  25.                     new BabyName("Parker", 2, 1),  
  26.                     new BabyName("Jessica", 2, 0),  
  27.                     new BabyName("Jeff", 1, 0)};  
  28.           
  29.         // Constructor  
  30.         public MainPage()  
  31.         {  
  32.             InitializeComponent();  
  33.             boyList.ItemsSource = from n in names  
  34.                     where (n.Gender1 == 1 || n.Gender2 == 1)  
  35.                     orderby n.Name  
  36.                     select new BabyName(n.Name, n.Gender1, n.Gender2);  
  37.  
  38.             girlList.ItemsSource = from n in names  
  39.                     where (n.Gender1 == 2 || n.Gender2 == 2)  
  40.                     orderby n.Name  
  41.                     select new BabyName(n.Name, n.Gender1, n.Gender2);  
  42.  
  43.             allList.ItemsSource = from n in names  
  44.                     orderby n.Name  
  45.                     select new BabyName(n.Name, n.Gender1, n.Gender2);  
  46.         }  
  47.     }  

你會看到對于每個ListBox,我都將BabyName對象的數組用簡單的LINQ語法賦給了ItemsSource屬性。如果你不熟悉LINQ,你就錯過了語言集成查詢功能。這有一個非常棒的LINQ學習資源列表。

定義了這些查詢后,我就可以輕松的對數據集合進行排序,解析,并將相同數據的不同集合賦予每個PivotItem項。

就是這些內容!通常情況下你不應該在全景視圖或樞軸控件中使用超過7個項(如果你這么做了,你應該想想用其他的方式……),這主要是因為那是你的用戶能記住的上限。如果他們忘了,就不會去用了,對嗎?(7是已知的人類記憶的上限,這也是為什么我們的電話號碼也是這個長度。)

下載示例代碼

這個例子演示了如何在Windows Phone 7中實現一個樞軸控件,使用真實數據來填充ListBox。下載后可以邊玩邊學。

原作者:Jeff Blankenburg    譯者:金山崟霸

中文來源:http://www.cnblogs.com/porscheyin/archive/2010/12/23/1914676.html

英文來源:http://www.jeffblankenburg.com/2010/10/17/31-days-of-windows-phone-day-17-the-pivot-control/

【編輯推薦】

  1. 31天學會Windows Phone 7開發:全景視圖
  2. 31天學會Windows Phone 7開發:獨立存儲
  3. 31天學會Windows Phone 7開發:墓碑機制(多任務)
  4. 31天學會Windows Phone 7開發:位置服務
  5. 31天學會Windows Phone 7開發:使手機震動
責任編輯:王曉東 來源: 博客園
相關推薦

2012-08-13 09:56:45

Windows Pho

2010-12-01 13:40:13

樞軸控件Windows Pho

2012-06-13 13:01:57

Windows Pho

2012-08-02 10:16:39

Windows Pho

2012-06-06 13:48:34

Windows Pho

2012-06-11 13:08:10

Windows Pho

2012-08-01 10:26:33

Windows Pho

2012-08-16 11:31:30

Windows Pho

2012-06-25 16:14:26

Windows Pho

2012-06-12 10:43:20

Windows Pho

2012-06-07 09:33:13

Windows Pho

2012-06-19 09:31:53

Windows Pho

2012-06-20 10:21:50

Windows Pho

2012-07-13 14:41:12

2012-07-24 10:15:34

Windows Pho

2012-06-21 10:59:31

Windows Pho

2012-07-11 09:21:35

Windows Pho

2012-07-31 09:44:27

Windows Pho

2012-06-29 14:13:10

2013-04-19 16:52:24

Windows PhoWindows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久国产a级 欧美日韩国产免费 | 亚洲精品久久久久久宅男 | 久久美女网 | 99热精品在线观看 | 免费人成激情视频在线观看冫 | 羞羞视频在线网站观看 | 在线播放国产一区二区三区 | 欧美视频| 一区二区三区在线 | 欧 | 久久久久久国产精品免费免费男同 | 亚洲在线视频 | 国产一区二区在线免费观看 | 成人精品一区二区三区中文字幕 | 精品久久久久久久久久久久久久久久久 | 九九伦理电影 | 欧美精品久久久久 | 久久久久久黄 | 福利精品| 国产高清精品一区二区三区 | 国产成人精品一区二区三区视频 | 久久久99精品免费观看 | 69视频在线播放 | 中国毛片免费 | 国产 日韩 欧美 在线 | 欧美精品在线一区 | 久久精品福利视频 | 国产精品成人一区二区三区 | 91精品国产美女在线观看 | 欧美精品综合在线 | 狠狠的干 | 欧美日韩午夜精品 | 国产精品精品久久久 | 亚洲狠狠丁香婷婷综合久久久 | 欧美一区久久 | 四虎最新视频 | 国产精品a一区二区三区网址 | 欧美一区二区视频 | 亚洲精品一区二区三区中文字幕 | 国产日产欧产精品精品推荐蛮挑 | 国产精品久久午夜夜伦鲁鲁 | 欧美区在线观看 |