导航控件

Silverlight的Windows Phone应用程序是基于一种可以让用户在不同页面内容间来回导航的页面模型。这个模型是基于其中的frame控件,而页面间的导航就是靠它。

下面的表格列出了Windows Phone程序的用来支持导航的控件。

PhoneApplicationFrame

Windows Phone的Silverlight程序主控件。用来支持页面的导航。

PhoneApplicationPage

可以被PhoneApplicationFrame导航的控件。

下图显示了frame和页面模型。

布局和分组控件

布局控件通常指可以包含其它控件的控件,它包含其它控件和一些视觉元素。就像其名字一样,它用来定位其内部控件的位置。布局控件通常用在程序中一个页面的根布局。其它所有的控件都包含在这个根控件下面。当然如果需要,根布局控件也可以放入其它的布局控件。当新建一个Windows Phone程序的时候,一个Grid就作为布局的根元素被创建了。这个控件包含了其它的布局控件用来显示标题和内容。在内容部分也可以再填加布局控件。然而在选择具体用哪种布局控件,还要考虑程序是否要支持横屏切换。

大多数布局控件都是继承自Panel类,比如StackPanel,Canvas和Grid。其它还有两个控件是Panorama和Pivot,这两个控件是继承自ItemsControl的,在Windows Phone程序里有特殊的用途,跟其它的列表控件有很大的不同,相比传统的列表控件可以包含大量的元素进来,而它们应尽量包含比较小数量的元素,他们主要是用来实现在不同的列表元素之间来回切换。

下面列出在Windows Phone程序中的布局和分组控件。

Border

用于在另一元素周围绘制边框或背景色。

Canvas

里面的控件以坐标的方式显示

ContentControl

单个元素的呈现容器。由于这个元素可以是一个类,所以这个元素也可以包含其它的子元素在里面。

Grid

靠行列信息定位其中的元素。在Grid里可以定义若干行和列,然后指定元素放在哪一行哪一列。

Panorama

全景视图,内部的元素可以一屏一屏地切换

使用一个超过屏幕宽度的长水平画布,提供独特显示控件,数据和服务的方式,是一种选项、导航和数据的多屏幕         滚动菜单

-结构包括:Background,Title,Items,Background图片高度要为800像素,宽度大于480像素,小于2000像素

Pivot

这个控件可以用来作为在不同视图中切换或者过滤数据的导航接口,提供了一种方便的分组数据管理方式。

快捷管理应用中的视图或页面,过滤数据,视图分类

-结构包括:Title,Header,PivotItem

-使用注意:Header文字不要显示过长,以免其他PivotItem中的Header无法显示,在PivotItem中,不要使用ScrollViewer   或ListBox这类带有手势的控件

StackPanel

以线性的方式呈现元素,支持横向和纵向。

VirtualizingStackPanel

相比StackPanel,它对大量元素数据的处理性能要比较好。

ScrollViewer

提供滚动条的方式显示内部的元素。

下图显示控件在横屏和竖屏不同的显示形式,用到了StackPanel,Canvas和Grid。

下图显示Panorama控件如何显示横向切换的内容。

文本控件

文本控件通常用来显示字符串的内容。根据不同的方式文本控件也有不同的种类。下表列出了Windows Phone程序中的文本控件。

TextBlock

用来显示简单的只读方式的文本。

TextBox

用来进行短文本的的录入。也可以进行大文本,多行的输入。

PasswordBox

用来输入密码,输入的输入的密码会替换成*符号。

下图演示基本的文本控件。

按钮和选择控件

按钮和选择控件使用户在程序中很方便地进行选取和导航。大多数按钮和选择控件都继承自ContentControl,也就是说其内容都是Content属性。这个属性的类型是Object,所以它们的内容受到的限制就要少很多,因为很多控件都是继承自Object类型的,这样就可以在ContentControl中以嵌套的方式创建控件。比如,按钮的Content属性内容可以设置成一个StackPanel控件,然后让它里面包含一张图片和文本。下图列出所有按钮控件。

Button

通过Click事件响应按钮被按下按钮的事件。

HyperlinkButton

按钮的形式以超链接的形式呈现。当被点击后,可以导航到用户指定的页面。

下面的列表是选择控件

CheckBox

复选框,可以标记用户的选取和取消选取的状态。

RadioButton

单选框,允许用户在一堆选项中选取一个,通常是一组RadioButton组合在一起。

Slider

让用户通过滑块的方式在一个范围内选取一个值。可以设置水平、垂直方向的滑竿

10、Thumb:通过拖动,获取连续的坐标,三个基本事件DragDelta(鼠标移动时)、DragStart(开始拖动)、DragComplete(拖动完成)

下图是按钮和选取控件的示例。

列表控件

元素以列表的形式呈现,主要有:

ListBox

用户可以以单击的方式选取列表中的元素。其内容是Items和ItemsSource。其中每一个元素都是可以通过DataTemplate自定义的。

下图是列表控件的演示。

图像,地图和媒体控件

作为Windows Phone客户端富有表现力的展现方式,图片,地图和媒体是十分重要的方式。

Image

显示图片。通过Source指定图片,Windows Phone支持PNG和JPG格式的图片。

Map

显示Bing地图。可以在工具栏中直接使用。使用Bing地图你需要为你的程序获取一个Bing地图的Key。通过Mode指定地图的显示类型,ZoomLevel属性进行缩放。

MediaElement

用来播放音频和视频。通过Source属性指定内容。然而由于性能原因,最好还是使用XNA框架的SoundEffect类。

播放本地或网络上的多媒体;支持多媒体格式:WAV、MP3,支持mms、rtspt、rtsp流媒体协议;-属性IsMuted是否静音Stretch设置视频画面在控件中的填充方式AutoPlay是否自动播放;-事件MediaOpened MediaEnded MediaFailed 注意:其对视频的格式和帧大小有相应的要求

下图演示图片,地图和媒体控件.

HTML控件

用来在程序中显示HTML内容。主要通过WebBrowser。

下图演示WebBrowser控件显示网页。

进度和消息控件

好的程序都会提供给用户比较好的反馈信息,比如对于长时间的操作提供一个进度显示条,通过消息框来显示发生的错误信息。下表列出支持的进度和消息组件。

ProgressBar

显示当前操作的进度信息,用来报告一个操作的进度,或者指定进度条为不确定的模式,这种模式会降低程序的性能。

两种类型:显示确切进度和不断重复的动画

Popup

在界面顶层弹出消息框。用于临时显示或者提示一些信息。通常的用法就是把一个用户空间作为Popup的Child属性。通过设置Popup属性的IsOpen属性指定其是否显示。

下面演示Popup,其中包括TextBlock,Button和ProcessBar。

ToolKit控件

在Codeplex的Silverlight for Windows Phone Toolkit中提供了更多的组件。里面包含了控件的源代码和示例。下表列出了目前所包含的控件。Toolkit中也包含了很多组件,比如页面的过度和手势识别。

AutoCompleteBox

当用户输入文本信息的时候,一个下拉列表组件会根据当前输入的内容提示可能匹配的项目。

ListPicker

当前选中的会以一个文本框的方式显示,选取的时候是通过下拉列表的形式。

LongListSelector

以分组的方式显示大列表信息。

ContextMenu

上下文菜单,用户长事件按住一个控件的时候出现。

DatePicker

日期选取控件

TimePicker

事件选取控件

ToggleSwitch

开关控件

WrapPanel

会根据内部的元素以行列的方式动态排布。当元素在当前行显示不下的时候,会自动在下一行显示

wp控件的更多相关文章

  1. WP - 控件基础-按钮控件

    Button:HyperlinkButton:RepeatButton:ToggleButton 1.Button:    <button content="Button" ...

  2. Windows Phone 二、WP控件

  3. Windows Phone开发(11):常用控件(下)

    原文:Windows Phone开发(11):常用控件(下) WP控件大部分都可以从Silverlight中继承过来,这里我也只能拿一部分作演示,对于其它控件如何使用,可以参考SDK相关说明以及Sil ...

  4. 【WP开发】WebView控件应用要点

    WebView控件我就不多作详细的介绍,相信大家都懂的,就算你没用过,你看他的名字和长相都知道它的用途了.就是用来显示HTML内容的. 在WP 8.1的Runtime App中,这个控件大致有以下几个 ...

  5. Wpf/Wp/Silverlight-Chart图表控件:柱状图、饼状图等使用汇总

    链接:http://www.cnblogs.com/jimson/archive/2010/06/21/Wpfchat.html http://www.cnblogs.com/mgen/p/32361 ...

  6. WP开发笔记——控件倾斜效果

    创建一个基本的 Windows Phone 应用程序并添加 TiltEffect 类文件. 添加要倾斜的控件的分类. 全局应用 IsTiltEnabled 依赖项属性,以便为所有的指定控件提供倾斜功能 ...

  7. WP 类似扑克牌布局控件和类似扑克卡片控件

    一.说明 本文代码来源: <windows phone 7 程序设计> Charles Petzold 控件效果: 二.要点: 1.ItemControl.子项容器模板(ItemsCont ...

  8. 吐槽一下wp toolkit ToggleSwitch控件

    之前用法: <toolkit:ToggleSwitch> <toolkit:ToggleSwitch.Header> <TextBlock Text="2323 ...

  9. 斗天斗地斗控件 -- 与 Flyout 控件的斗争史

    前言 在淘宝的收藏夹页面本地化过程中,收藏的宝贝和店铺的分类展示通过一个下拉菜单的方式进行展示.如果单独为此从头重写一个控件,那么不但费时费力,包括所有的动画方式都要全新设计,而且还容易出 bug.好 ...

随机推荐

  1. Javascript样例之文档章节滚动全版(DOM)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABBMAAAC5CAIAAAD1bOCRAAAMEUlEQVR4nO3d4XEbyREGUGRCZQDGcG

  2. 18.用两个栈实现队列[2StacksToImplementQueue]

    [题目] 某队列的声明如下:  C++ Code  123456789101112131415   template<typename T> class CQueue { public: ...

  3. Java for LeetCode 052 N-Queens II

    Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...

  4. Java for LeetCode 045 Jump Game II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  5. Greedy:Yogurt factory(POJ 2393)

    酸奶工厂 题目大意:酸奶工厂每个星期都要制造酸奶,成本每单位x,然后每个星期要生产y,然后酸奶厂有个巨大的储存室,可以无限储存酸奶,而且酸奶的品质不会变坏,每天储存要每单位花费S,求最小的成本. 简直 ...

  6. codeforces 485B Valuable Resources 解题报告

    题目链接:http://codeforces.com/problemset/problem/485/B 题目意思:需要建造一个正方形的city,这座city的边需要满足平行于 x 轴和 y 轴,而且这 ...

  7. codeforces 459C Pashmak and Buses 解题报告

    题目链接:http://codeforces.com/problemset/problem/459/C 题目意思:有 n 个 students,k 辆 buses.问是否能对 n 个students安 ...

  8. July 30th, Week 31st Saturday, 2016

    No matter how far you may fly, never forget where you come from. 无论你能飞多远,都别忘了你来自何方. No matter how fa ...

  9. Java 全半角转换

    * 全角转半角的 转换函数* @return String*/public static final String full2HalfChange(String QJstr){StringBuffer ...

  10. myeclipse中的js文件报错

    方法一:myeclipse9 很特殊 和 myeclipse10 不一样,所以myeclipse9 不能使用该方法. 方法二: 为了做一个页面特效,导入了一个jquery文件,怎想,myeclipse ...