对于WP7和Android平台相关的UI控件对比来看,WP7控件的数量整体比Android少了不少,同时在基本的控件上Windows Phone还需要Silverlight Toolkit来实现,当然微软这样做也是让更多的控件得到社区支持快速的更新,而不打包在SDK中等待漫长的改进。 下面就以WP7和Android两个平台做简单对照 (前者为WP7后者为Android): ListBox - ListView 整体而言,WP7平添的ListBox控件的更新机制依赖于INotifyCollectionChanged接口,实现ObservableCollection即可,而Android平台的ListView提供了BaseAdapter机制,对于控件的构造等方面,WP7相比Android更繁琐些。 WebBrowser - WebView,对于属于微软平台开发者一定知道有个CWebBrowser类,同样在Windows Phone上提供了这个控件,方面的内嵌一个HTML页面,而对应Android平台为WebView,不过它们的浏览器内核一个是IE,一个是Webkit。 Panel - ViewGroup 作为显示类的容器,他们的作用差不多,前者是Silverlight中的类,相信很多.Net Framework 3的开发者比较熟悉。 ScrollViewer - ScrollView 前者是WP7上的滚动容器,后者是Android上的滚动视图,整体作用是一样的。 Slider - SeekBar 如果你是Win32开发者对于Slider控件不会陌生吧,同样WP7的滑块控件仍然叫Slider,而对应Android平台的为SeekBar。 TextBlock - TextView 对于文本的显示和处理Windows Phone 7使用TextBlock,后者是安卓平台得本文显示控件,类似MFC的Label控件即CStatic。 TextBox - EditText 对于文本框来说,输入内容这点大家都不会陌生,只是后者是Android平台上功能比较强大,比如支持密码,可能前置就需要自己处理,当然WP7还提供了一个名为PasswordText的控件。 ToggleSwitch - ToggleButton 对于开关控件大家不会陌生吧,一般开关WiFi就是这个控件。 Pivot - TabHost 对于WP7来说支持水平切换的标签控件有了一些创新为枢轴Pivot控件,Zune123提示大家而后者使用TabHost实现标签页,但不支持水平滑动。 需要说明的是WP7上的Grid和Android的GridView不是一个概念,前者为布局的容器,后者为类似九宫格的控件,相比之下WP7没有直接提供9宫格的控件,在布局代码上过于的繁琐,不够清晰这和XAML过多的命名空间有关,当然这也和Silverlight库的历史有着一定的联系。 |