自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows Phone 7 UI設(shè)計(jì):理解MainPage.xaml

原創(chuàng)
移動(dòng)開發(fā)
在本文中我們將介紹如何理解Windows Phone應(yīng)用程序中的MainPage.xaml。代碼片段顯示了MainPage.xaml的原始代碼,提供了一個(gè)ApplicationBar按鈕示例,默認(rèn)情況下,這些代碼是被注釋掉的,如果取消從<phone:Phone-ApplicationPage.ApplicationBar>開始的注釋,你就會看到效果了。

【51CTO譯文】在前文中51CTO已經(jīng)向大家介紹過Windows Phone 7 UI設(shè)計(jì)理念、應(yīng)用程序開發(fā)平臺,以及在做UI設(shè)計(jì)時(shí)應(yīng)該理解的代碼隱藏文件和啟動(dòng)畫面,在本文中我們將介紹如何理解Windows Phone應(yīng)用程序中的MainPage.xaml。

下面的代碼片段顯示了MainPage.xaml的原始代碼,提供了一個(gè)ApplicationBar按鈕示例,默認(rèn)情況下,這些代碼是被注釋掉的,因此在設(shè)計(jì)視圖中是看不到應(yīng)用程序工具條的,如果取消從<phone:Phone-ApplicationPage.ApplicationBar>開始的注釋,你就會看到效果了。

圖1 顯示了MainPage.xaml的文檔結(jié)構(gòu)。

MainPage.xaml默認(rèn)的文檔結(jié)構(gòu) 
圖 1 MainPage.xaml默認(rèn)的文檔結(jié)構(gòu)

通過文檔結(jié)構(gòu)可以加快了解組成UI的不同控件。

  1. <phone:PhoneApplicationPage 
  2. x:Class="WPBusinessApp.MainPage" 
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  5. xmlns:phone="clrnamespace:  
  6. Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
  7. xmlns:shell="clrnamespace:  
  8. Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
  9. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  10. xmlns:mc="http://schemas.openxmlformats.org/markupcompatibility/  
  11. 2006"  
  12. FontFamily="{StaticResource PhoneFontFamilyNormal}" 
  13. FontSize="{StaticResource PhoneFontSizeNormal}" 
  14. Foreground="{StaticResource PhoneForegroundBrush}" 
  15. SupportedOrientations="Portrait" Orientation="Portrait" 
  16. mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="696" 
  17. shell:SystemTray.IsVisible="True"> 
  18. <!—LayoutRoot contains the root grid where all other page  
  19. content is placed—> 
  20. <Grid x:Name="LayoutRoot" Background="Transparent"> 
  21. <Grid.RowDefinitions> 
  22. <RowDefinition Height="Auto"/> 
  23. <RowDefinition Height="*"/> 
  24. </Grid.RowDefinitions> 
  25. <!—TitlePanel contains the name of the application and  
  26. page title—> 
  27. <StackPanel x:Name="TitlePanel" Grid.Row="0" 
  28. Margin="24,24,0,12"> 
  29. <TextBlock x:Name="ApplicationTitle" Text="MY  
  30. APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> 
  31. <TextBlock x:Name="PageTitle" Text="page name" 
  32. Margin="-3,-8,0,0" Style="{StaticResource  
  33. PhoneTextTitle1Style}"/> 
  34. </StackPanel> 
  35. <!—ContentPanel - place additional content here—> 
  36. <Grid x:Name="ContentGrid" Grid.Row="1"> 
  37. </Grid> 
  38. </Grid> 
  39. <!— Sample code showing usage of ApplicationBar—> 
  40. <phone:PhoneApplicationPage.ApplicationBar> 
  41. <shell:ApplicationBar IsVisible="True" 
  42. IsMenuEnabled="True"> 
  43. <shell:ApplicationBarIconButton 
  44. x:Name="appbar_button1" IconUri="/Images/appbar_button1.png" 
  45. Text="Button 1"></shell:ApplicationBarIconButton> 
  46. <shell:ApplicationBarIconButton 
  47. x:Name="appbar_button2" IconUri="/Images/appbar_button2.png" 
  48. Text="Button 2"></shell:ApplicationBarIconButton> 
  49. <shell:ApplicationBar.MenuItems> 
  50. <shell:ApplicationBarMenuItem 
  51. x:Name="menuItem1" Text="MenuItem  
  52. 1"></shell:ApplicationBarMenuItem> 
  53. <shell:ApplicationBarMenuItem 
  54. x:Name="menuItem2" Text="MenuItem  
  55. 2"></shell:ApplicationBarMenuItem> 
  56. </shell:ApplicationBar.MenuItems> 
  57. </shell:ApplicationBar> 
  58. </phone:PhoneApplicationPage.ApplicationBar> 
  59. <!— End of sample code —> 
  60. </phone:PhoneApplicationPage> 
  61.  

LayoutRoot是PhoneApplicationPage中的根Grid,所有頁面內(nèi)容全部位于LayoutRoot中,需要注意的是ApplicationBar沒有指定具體的名字,它也屬于PhoneApplicationPage的一部分,因?yàn)閼?yīng)用程序工具條是一個(gè)特殊的Shell控件,TitlePanel是擁有兩個(gè)TextBlock控件的StackPanel。

◆ApplicationTitle:默認(rèn)情況下,它的“Text”屬性被設(shè)為“MY APPLICATION”,你可以修改為你自己的應(yīng)用程序標(biāo)題名字。

◆PageTitle:默認(rèn)情況下,它的“Text”屬性被設(shè)為“page name”,如果你的應(yīng)用程序有多個(gè)頁面,你可以使用這個(gè)TextBlock指定一個(gè)真實(shí)的頁面,如果應(yīng)用程序只有一個(gè)頁面需要控件,這個(gè)TextBlock就會占用不必要的空間,如果你刪除它,StackPanel的高度值會自動(dòng)調(diào)整,因此,當(dāng)你需要放置更多的控件時(shí),可以移除PageTitle。

圖2顯示了一個(gè)TextBlock和一個(gè)位于ContentGrid內(nèi)的TextBlock,Silverlight for Windows Phone支持主題,因此根據(jù)用戶在設(shè)備中選擇的主題不同,每個(gè)控件的外觀可能都不一樣。

應(yīng)用默認(rèn)主題的設(shè)計(jì)視圖,顯示了添加的控件樣式 
圖 2 應(yīng)用默認(rèn)主題的設(shè)計(jì)視圖,顯示了添加的控件樣式

默認(rèn)情況下,Visual Studio 2010工具箱提供了最常見的Windows Phone控件,在工具箱上下文菜單中點(diǎn)擊“選擇”可以添加更多隱藏起來的控件,例如,非常有用的老式InkPresenter控件,它允許用戶直接用手指作畫。

你也可以使用Silverlight 3引入的3D投影,但如果你不想為這些3D投影編寫XAML代碼,那你必須選擇Microsoft Expression Blend 4 for Windows Phone,實(shí)際上,如果你要?jiǎng)?chuàng)建一個(gè)復(fù)雜的UI,Expression Blend可以簡化你的工作,它也允許你使用行為簡化UI控件響應(yīng)常見的多點(diǎn)觸摸手勢。

Expression Blend 4提供了更精密的設(shè)計(jì)視圖,當(dāng)你使用ApplicationBar時(shí),你可以從預(yù)定義圖標(biāo)列表為每個(gè)按鈕選擇不同的圖標(biāo),如圖3所示。

Expression Blend 4為ApplicationBarIconButton提供了一個(gè)預(yù)定義的圖標(biāo)下拉列表 
圖 3 Expression Blend 4為ApplicationBarIconButton提供了一個(gè)預(yù)定義的圖標(biāo)下拉列表

ApplicationBar是由許多ApplicationBarIconButton控件組成的,這些圖標(biāo)顯示在一個(gè)小圓圈內(nèi),如圖4所示。

兩個(gè)ApplicationBarIconButton控件和它們對應(yīng)的圖標(biāo) 
圖 4 兩個(gè)ApplicationBarIconButton控件和它們對應(yīng)的圖標(biāo)

ApplicationBar也可以包括ApplicationBarMenuItem控件,你可以為每個(gè)ApplicationBarIconButton和ApplicationBarMenuItem控件加入一個(gè)Click事件處理程序。注意ApplicationBar控件是可選的,當(dāng)你在Visual Studio 2010或Expression Blend 4 for Windows Phone中運(yùn)行項(xiàng)目時(shí),生成的結(jié)果將會部署到Windows Phone 7模擬器中,應(yīng)用程序第一次運(yùn)行時(shí),Windows Phone 7模擬器需要一點(diǎn)時(shí)間來加載,但不用關(guān)閉模擬器就可以啟動(dòng)另一個(gè)調(diào)試會話,保持模擬器一直運(yùn)行會帶來很大的方便,在你完成必要的修改后,可再次運(yùn)行,如果你關(guān)閉模擬器,重新運(yùn)行項(xiàng)目時(shí)又要再加載一次。圖5顯示了運(yùn)行著一個(gè)非常簡單的UI的模擬器,點(diǎn)擊模擬器的開始菜單,將會看到Internet Explorer等應(yīng)用程序的圖標(biāo)。

運(yùn)行中的Windows Phone 7模擬器 
圖 5 運(yùn)行中的Windows Phone 7模擬器

圖6顯示了一個(gè)示例應(yīng)用程序的自定義圖標(biāo)。

菜單項(xiàng)列表中顯示的應(yīng)用程序自定義圖標(biāo) 
圖 6 菜單項(xiàng)列表中顯示的應(yīng)用程序自定義圖標(biāo)

圖7顯示了模擬器中的自定義啟動(dòng)畫面,默認(rèn)情況下,項(xiàng)目定義支持PhoneApplicationPage的縱向顯示。

應(yīng)用程序啟動(dòng)時(shí)顯示的自定義啟動(dòng)畫面 
圖 7 應(yīng)用程序啟動(dòng)時(shí)顯示的自定義啟動(dòng)畫面

下面的代碼指定了SupportedOrientations和Orientation的值。

  1. SupportedOrientations="PortraitOrLandscape" Orientation="Landscape" 
  2.  

控件的位置和大小將會根據(jù)設(shè)備的方向,PhoneApplicationPage的SupportedOrientations屬性值不同而有所變化,如果你希望你的應(yīng)用程序支持橫向和縱向使用,必須將SupportedOrientations設(shè)為PortraitOrLand scape。記住一定要用模擬器測試不同的方向,避免用戶旋轉(zhuǎn)設(shè)備時(shí),控件的位置和大小出現(xiàn)異常,圖8顯示了一個(gè)應(yīng)用程序在模擬器中旋轉(zhuǎn)方向后的樣子。

Windows Phone 7模擬器橫向顯示一個(gè)應(yīng)用程序 
圖 8 Windows Phone 7模擬器橫向顯示一個(gè)應(yīng)用程序

原文出處:http://www.drdobbs.com/windows/227701092;jsessionid=0LPPSGFA3UDNBQE1GHPSKH4ATMY32JVN

原文名:Developing a Silverlight UI for Windows Phone 7

作者:Gaston Hillar

【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請注明原文出處、作者及51CTO譯稿和譯者!】

【編輯推薦】

  1. Windows Phone 7 UI設(shè)計(jì)理念
  2. 簡述Windows Phone 7應(yīng)用程序開發(fā)平臺
  3. Windows Phone 7 UI設(shè)計(jì)菜單:代碼隱藏文件和啟動(dòng)畫面 
  4. Windows Phone 7開發(fā)工具發(fā)布更新包 附下載地址
  5. 微軟推Windows Phone 7 Silverlight程序員成贏家
責(zé)任編輯:佚名 來源: 51CTO獨(dú)家譯稿
相關(guān)推薦

2010-11-09 09:43:22

UI設(shè)計(jì)Windows Pho

2010-11-24 16:15:09

UI設(shè)計(jì)Windows Pho

2010-11-24 16:36:02

Windows PhoUI設(shè)計(jì)Windows Pho

2011-12-29 21:22:29

Windows Pho

2012-03-20 21:05:53

Windows Pho

2010-10-25 14:07:55

Windows Pho

2011-03-28 09:08:04

評測報(bào)告設(shè)計(jì)Windows Pho

2010-11-04 18:11:35

UI設(shè)計(jì)SilverlightWindows Pho

2010-08-02 14:47:51

Windows PhoWindows PhoWindows Pho

2013-04-12 11:02:50

WWindowsPho

2013-07-30 11:18:37

Windows PhoWindows Pho

2010-11-26 16:00:08

Windows Pho

2011-08-22 16:45:58

Windows PhoiOS

2010-05-05 13:16:02

Windows PhoWindows CE

2012-05-29 21:38:14

Metro UI

2011-02-15 09:07:33

Windows Pho諾基亞

2010-12-14 18:48:49

微軟

2010-10-11 14:42:49

Windows Pho

2010-12-01 13:55:29

地圖插件Windows Pho

2010-04-08 17:40:23

Windows Pho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號