UWP 学习笔记 一

UWP中的控件与wpf中的控件形式非常相似,都是xmal的UI和后台代码相结合的形式实现的,只是他们的默认风格不一样。UWP控件的风格是Win10的扁平化风格,每种控件(默认样式/模板)的颜色是动态绑定的当前Windows的主题色,这也就是在用户更主题色(明/暗)的时候会随之发生变化,而wpf控件的样式则默认为Win32应用的样式。

HyperlinkButton(感觉比较鸡肋,也许在流文档中比较常用吧)

这个控件比之Button有一个依赖项属性为“NavigateUri”,这个属性可以绑定一个网址,来实现单击转到相应网址。也可以像普通Button那样实现自定义交互事件。

若是要我来实现这个功能的话,我选择继承一个Button,然后通过注册一个Uri类型的依赖项属性来使得在xmal可为其添加Uri。再overwrite他的click事件,在其中添加打开相应Uri的方法。

感觉这个控件意义不是很大,用Button的模板加上在click事件中编写代码就可以轻易实现.

扫描二维码关注公众号,回复: 2447707 查看本文章

网上基本上都是教如何自定义HyperlinkButton的模板,也就是美化,不过这种美工的事嘛,人人都是有不同的看法的。可见这个控件相比Button并没有扩充太多功能,因此用法相对简单。

网上只是提出了官方基本的规范:

“ 官方的基本规范为: 

    HyperlinkButton的内容不应该过长  

    HyperlinkButton控件不应该被放置得过于靠近,这样用户很难选择正确的

HyperlinkButton  

     如果该HyperlinkButton无法使用(用户也无法修改其状态),那么不应使用

HyperlinkButton  

     如果你对HyperlinkButton的默认样式不满意的话,可以通过ExpressionBlend来修改它的样式”

     摘自:http://dev.yesky.com/326/30993326.shtml

     除了在本地应用中用处不是很大之外,好像也没有什么太可吐槽的地方。

ColorPicker(如果只是windows默认功能的话,有些不太实用)

 

(Windows设置中的ColorPicker:设置->个性化->颜色->自定义)

(PhotoShop中的ColorPicker)

至于uwp实现这种默认拾色器的模板,估计是十分复杂的,毕竟那个二维的颜色渐变面版好像不太好用GDI+画,如果只是放个贴图,通过计算点击位置再转换为rgb展示颜色在右边的一维渐变条的话就能简单很多。

而且颜色模式也只有两种 RGB(A)和 HSV。

若是对于普通用户来说,这是足够了,但若是看看PS中的颜色筛选器,就可以看出其中不但有RGB,HSV还有用于打印的CMYK模式和显示器的YUV模式,这样不同的用户可以根据自己的需要选择相应的模式。(PS.其实据网上说PS的界面应该是Wpf做的,这样看来,Adobe公司的这帮家伙真是专业人士啊!)

如果是只需要简单的RGB颜色控制的话,用三个拖动条控制也许比较容易一些,而且使用usercontrol将slider封装一下就能实现。通过一个Rectangle来表示当前所选颜色即可。

Border(看上去不实用,但是却被默认模板广泛使用的控件…)

 

Border,顾名思义,边框,也许我们只是将他当作某个控件的边框,就像最简单的使用

我一般习惯性的将布局当作最底层的容器,但实际上若是查看wpf默认样式,有些是将Border作为最底层控件的。

另外,如果要实现无边框窗口的话,border可以提供拖拽改变大小的界定,即在border的鼠标事件中添加相关操作来实现改变对话框大小的改变。

Hub (满满的磁贴风格,win8的余孽)

 

这种控件让人一看就会想起win8的磁贴界面

这种一按“WIN“键就跳转到这个界面的设计真是哔了狗了。这种控件应该在移动端或者那些支持触摸操作的设备上比较受欢迎,但是在以鼠标为输入的桌面端感觉不是很实用。

这个控件看起来与ScrollView有着不可分割的关系,应该是基于ScrollView实现的。在一个ScrollView中放置若干个grid,这些grid上的标题在被单击时触发storyboard,应该是一种缩放动画,还有透明度的渐变最后转到一个目录式的ScrollView。(以上纯属猜测,反正这样挺麻烦的)

 

不过话说回来,这种单击标签转到目录的设计无疑是非常好用的,就像win10的菜单,基于首字母的目录为查找相关应用节省了大量时间。

MediaPlayerElement (只能用作某些视频文件的预览,无法作为播放器使用)

 

如果你有幸有一部WindowsPhone的话,你才能真正感受为什这个控件只能用来预览视频,因为他的功能实在是太少了,而且极为不方便,格式支持也不是很好。现在网上的很多媒体都是FLV或者AVI格式的,而这个好像只有mp4和wmv等很少的格式。

如果你在一个Uwp应用中使用到这个功能,他大概是这个样子,对于桌面端还好说,可以通过拉伸窗口来使视频充满屏幕,而对于移动端来说,1920*1080的分辨率决定你只有开启重力感应才能使它的方向变为横向,不然你只能看这个小缩放中的内容了。

而关于重力感应,在你竖着放置手机时(想象一下侧卧在床上看手机的情景)你就会知道重力感应的判定使人多痛苦了,画面会时不时的因为轻微的扰动而改变方向….

这个控件没有锁定方向这个技能,这就是他不能作为一款实用播放器的原因了。

而如果自己制作一款多格式播放器的话,不但要设计精美的UI还要对各种视频类型的帧格式有了解,在加上自己做一些播放方面的优化,想想就让人头痛(反正我对视频的帧格式是一无所知的,这对我就是不可能的任务)

猜你喜欢

转载自blog.csdn.net/q886yes/article/details/79596497
UWP