适用于: 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 导航到的内容。 |
下图演示框架和页面模型。
![Controls - Frame Page Controls - Frame Page](http://i.msdn.microsoft.com/dynimg/IC595792.png)
包含其他控件的控件通常称为布局控件。布局控件是其他控件和 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 中,使用的是基于列和行的布局系统。
![Controls - Layout Controls Controls - Layout Controls](http://i.msdn.microsoft.com/dynimg/IC595793.png)
下图演示 Panorama 控件,以及如何使用它横向显示视图。
![Controls - Panorama Controls - Panorama](http://i.msdn.microsoft.com/dynimg/IC595794.png)
文本控件通常显示字符串内容。针对不同的目的有不同类型的文本控件。有关更多信息,请参见快速入门:Windows Phone 的文本。下表列出 Windows Phone 应用的文本控件。
控件 | 位置 | 注释 |
---|---|---|
System.Windows 程序集 | 使用它显示简单的只读文本片段。使用 Text 属性设置内容。 | |
System.Windows 程序集 | 通常用于较短的文本输入。但是,您也可以把它用于较大的多行文本输入。使用 Text 属性设置内容。 | |
System.Windows 程序集 | 掩盖用户输入的文本。使用 Password 属性设置内容,使用 PasswordChar 属性掩盖内容。 |
下图演示文本控件。
![Controls - Text Controls Controls - Text Controls](http://i.msdn.microsoft.com/dynimg/IC595795.png)
按钮和选择控件使用户能够方便地选择项或导航应用。大多数按钮和选择控件派生自 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 属性确定轨道上的位置。 |
下图显示按钮和选择控件。
![Controls - Button Selection Controls - Button Selection](http://i.msdn.microsoft.com/dynimg/IC595796.png)
下表列出可用于显示项列表的控件。
控件 | 位置 | 注释 |
---|---|---|
System.Windows 程序集 | 显示一个包含多个项的列表,用户可通过单击选择其中的项。使用 Items 或 ItemsSource 属性设置内容。可使用 DataTemplate 自定义每一个项的外观。 ![]()
如果您正在 Windows Phone 8 项目中工作,ListBox 控件不会在工具箱中显示。您可以使用 Windows Phone 8 应用中的 ListBox 控件,但是 LongListSelector 控件是用来显示项目列表的推荐控件。
| |
Microsoft.Phone 程序集 | 用于分组、显示和滚动较长的数据列表。您可以使用 ScrollTo 方法滚动到列表中的特定项。 |
下图演示 ListBox 控件显示项列表。
![Controls - List Controls Controls - List Controls](http://i.msdn.microsoft.com/dynimg/IC595797.png)
要为 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 控件显示内容。
![Controls - Image Map Media Controls Controls - Image Map Media Controls](http://i.msdn.microsoft.com/dynimg/IC595798.png)
可使用 WebBrowser 控件在应用中显示 HTML。下表列出用于显示 HTML 的控件。
控件 | 位置 | 注释 |
---|---|---|
Microsoft.Phone.Controls 程序集 | 显示呈现出的 HTML。使用 Source 属性设置内容。 |
下图演示 WebBrowser 控件显示内容。
![Controls - Web Browser Control Controls - Web Browser Control](http://i.msdn.microsoft.com/dynimg/IC595799.png)
设计良好的应用会向用户提供反馈,如较长时间操作的进度或表示已发生错误的消息。下表列出可用于向用户显示进度和消息的控件。
控件 | 位置 | 注释 |
---|---|---|
System.Windows 程序集 | 向用户显示操作的当前进度。可使用该控件报告操作的具体进度或简单地表示不确定模式下的进度。
| |
System.Windows 程序集 | 以覆盖现有内容形式显示内容。要临时显示可完成某具体任务的内容时,这很有用。通常,创建一个 UserControl,并将其设置为 Popup 的 Child 属性。将 IsOpen 属性设置为 true,以显示 Popup 控件。 可替换 Popup 控件、但灵活性稍差的是 MessageBox 组件。 |
下图演示 Popup 控件,它在常规模式和不确定模式下包含 TextBlock、Button 和 ProgressBar。
![Controls - Popup Progress Controls - Popup Progress](http://i.msdn.microsoft.com/dynimg/IC595800.png)