適用於: Windows Phone 8 | Windows Phone OS 7.1
Windows Phone 應用有幾種不同類型的可用控件。本主題對 Windows Phone 應用可用的不同類型控件進行分類,並詳細說明如何向這些控件添加內容。
Windows Phone 應用基於頁面模型,用戶可在其中向前導航以瀏覽不同頁面的內容。該模型基於一種應用框架控件,這種控件包含用戶可藉以導航的頁面控件。頁面包含佈局控件,佈局控件則包含其他控件。有關框架和頁面導航的更多信息,請參見 Windows Phone 應用內導航。下表列出了用於爲 Windows Phone 應用提供導航的控件。
控件 |
位置 |
註釋 |
---|---|---|
Microsoft.Phone 程序集 |
Windows Phone 應用的主控件。該控件支持導航到頁面和從該頁面導航。 |
|
Microsoft.Phone 程序集 |
封裝可由 PhoneApplicationFrame 導航到的內容。 |
下圖演示框架和頁面模型。
包含其他控件的控件通常稱爲佈局控件。佈局控件是其他控件和 Visual 對象的容器。顧名思義,佈局控件用於把其所包含的對象放置在屏幕上。在頁面內,佈局控件相當於應用的佈局根。UI 中的所有其他對象都包含在此根中。可根據需要在佈局根內使用其他佈局控件。創建新的 Windows Phone 應用時,會創建出相當於佈局根的 Grid 控件。佈局根包含相當於標題面板和內容面板的其他佈局控件。您將向內容面板添加其他佈局控件。此外,您在爲應用選擇佈局控件時,應考慮您的應用是否支持橫向或縱向。有關方向的更多信息,請參見快速入門:Windows Phone 的屏幕方向。
大多數佈局控件派生自 Panel 類。派生自面板的部分佈局控件示例有 StackPanel、Canvas 和 Grid。還有另外兩個控件:Panorama 和 Pivot,您可以使用它們爲手機應用佈局。Pivot 和 Panorama 控件派生自 ItemsControl,而且是專爲在 Windows Phone 應用中使用而創建。這些控件不同於典型的項控件,因爲它們應包含少量的項,而典型的項控件可能包含較大的列表。這些控件允許用戶方便地在項之間滑動和拖移。
下表列出了在 Windows Phone 應用中,用於佈局和元素分組的控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
爲另一控件提供邊框和/或背景。 |
|
System.Windows 程序集 |
提供一個圖面用於在畫布的特定座標處顯示子元素。 |
|
System.Windows 程序集 |
表示含有單個子元素的容器控件。子元素是對象,因此它可以包含含有其他子元素的佈局控件。 |
|
System.Windows 程序集 |
提供一個由行和列組成的圖面來顯示子元素。定義網格的行和列之後,可以向網格中的特定行或列分配對象。 |
|
Microsoft.Phone.Controls 程序集 |
創建可以從一邊平移到另一邊的項目全景視圖。 |
|
Microsoft.Phone.Controls 程序集 |
提供用於管理應用內的大型數據集的視圖的快速方法。該控件可以用作篩選較大的集或在視圖之間切換的導航界面。 |
|
System.Windows 程序集 |
提供一個圖面來沿水平或垂直線顯示子元素。 |
|
System.Windows 程序集 |
提供用於排列屏幕中可見內容的堆疊面板控件,可根據需要創建其他 UI 項。使用較大的項集時,VirtualizingStackPanel 比 StackPanel 的性能好。 |
|
System.Windows 程序集 |
提供一個可滾動圖面來顯示子元素。 |
有關 Windows Phone 佈局控件和佈局系統的更多信息,請參見Windows Phone 的佈局。
下圖顯示在縱向和橫向情況下使用的部分佈局控件。在該圖中,StackPanel 和 Canvas 嵌套在 Grid 中,使用的是基於列和行的佈局系統。
下圖演示 Panorama 控件,以及如何使用它橫向顯示視圖。
文本控件通常顯示字符串內容。針對不同的目的有不同類型的文本控件。有關更多信息,請參見快速入門:Windows Phone 的文本。下表列出 Windows Phone 應用的文本控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
使用它顯示簡單的只讀文本片段。使用 Text 屬性設置內容。 |
|
System.Windows 程序集 |
通常用於較短的文本輸入。但是,您也可以把它用於較大的多行文本輸入。使用 Text 屬性設置內容。 |
|
System.Windows 程序集 |
掩蓋用戶輸入的文本。使用 Password 屬性設置內容,使用 PasswordChar 屬性掩蓋內容。 |
下圖演示文本控件。
按鈕和選擇控件使用戶能夠方便地選擇項或導航應用。大多數按鈕和選擇控件派生自 ContentControl,這意味着使用 Content 屬性向它們添加內容。Content 屬性屬於 Object 類型,因此對於內容控件可以包含的內容很少有限制。由於派生自 Object 的許多類都可以包含其他控件,因此可以在 ContentControl 中創建嵌套的內容。例如,可以將按鈕的 Content 屬性設置爲包含圖像和文本的 StackPanel。下表列出按鈕控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
||
System.Windows 程序集 |
表示顯示超鏈接的按鈕控件。單擊 HyperlinkButton 後,用戶將轉到同一 Web 應用中的某個網頁或當前應用外部的網頁。使用 Content 屬性設置內容,使用 NavigateUri 屬性設置要導航到的 URL。 |
下表列出用戶可用於指定選擇的控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
表示用戶可以選擇或清除的控件。複選框還可以提供一種可選的不確定狀態。使用 Content 屬性設置內容。 |
|
System.Windows 程序集 |
使用戶可以從一個選項列表中選擇一個選項。分到同一個組的單選按鈕是互斥的。使用 Content 屬性設置內容。 |
|
System.Windows 程序集 |
表示一種控件,該控件使用戶可以沿着一條軌道從一個值範圍中進行選擇。Value 屬性確定軌道上的位置。 |
下圖顯示按鈕和選擇控件。
下表列出可用於顯示項列表的控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
顯示一個包含多個項的列表,用戶可通過單擊選擇其中的項。使用 Items 或 ItemsSource 屬性設置內容。可使用 DataTemplate 自定義每一個項的外觀。 注意:
如果您正在 Windows Phone 8 項目中工作,ListBox 控件不會在工具箱中顯示。您可以使用 Windows Phone 8
應用中的 ListBox 控件,但是
LongListSelector 控件是用來顯示項目列表的推薦控件。
|
|
Microsoft.Phone 程序集 |
用於分組、顯示和滾動較長的數據列表。您可以使用 ScrollTo 方法滾動到列表中的特定項。 |
下圖演示 ListBox 控件顯示項列表。
要爲 Windows Phone 應用生成豐富的用戶界面,顯示資源(如圖像、地圖和媒體內容)是一個重要部分。下表列出用於顯示圖像、地圖和媒體文件的控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
顯示圖像。使用 Source 屬性設置內容。Windows Phone 應用支持 PNG 和 JPG 圖像格式。 |
|
Microsoft.Phone.Maps 程序集 |
顯示地圖。可以從工具箱把控件拖動至應用中,但是爲使控件可以在運行時正常顯示,必須爲應用獲取 ApplicationID 和 AuthenticationToken。有關更多信息,請參見如何將地圖控件添加到 Windows Phone 8 中的頁面中。您可以使用 Center 和 ZoomLevel 屬性控制地圖居中和縮放的方式。 |
|
System.Windows 程序集 |
使用該控件播放音頻和視頻。使用 Source 屬性設置內容。出於性能方面的考慮,不應在應用中使用該控件播放聲音效果。最好使用 XNA Framework SoundEffect 類。 |
下圖演示 Image、Map 和 MediaElement 控件顯示內容。
可使用 WebBrowser 控件在應用中顯示 HTML。下表列出用於顯示 HTML 的控件。
控件 |
位置 |
註釋 |
---|---|---|
Microsoft.Phone.Controls 程序集 |
顯示呈現出的 HTML。使用 Source 屬性設置內容。 |
下圖演示 WebBrowser 控件顯示內容。
設計良好的應用會向用戶提供反饋,如較長時間操作的進度或表示已發生錯誤的消息。下表列出可用於向用戶顯示進度和消息的控件。
控件 |
位置 |
註釋 |
---|---|---|
System.Windows 程序集 |
向用戶顯示操作的當前進度。可使用該控件報告操作的具體進度或簡單地表示不確定模式下的進度。 Windows Phone OS 7.1:在面向 Windows Phone OS 7.1 的應用中,在不確定模式下使用該控件可能會降低應用性能。Microsoft 具有一個不支持的替代方法,名爲 PerformanceProgressBar。有關更多信息,請參見添加自定義的不確定進度欄。 |
|
System.Windows 程序集 |
以覆蓋現有內容形式顯示內容。要臨時顯示可完成某具體任務的內容時,這很有用。通常,創建一個 UserControl,並將其設置爲 Popup 的 Child 屬性。將 IsOpen 屬性設置爲 true,以顯示 Popup 控件。 可替換 Popup 控件、但靈活性稍差的是 MessageBox 組件。 |
下圖演示 Popup 控件,它在常規模式和不確定模式下包含 TextBlock、Button 和 ProgressBar。