1. InkCanvas
由于在上个学期刚使用Java开发过画板小软件,所以这个控件在我心中变得醒目。这是一个墨水画布控件,对于用户来说:画布仅提供简单基础功能,画笔颜色仅能选择四种基础颜色!硬伤在于不能撤销画笔,不能使用橡皮擦,想后悔?Clear All..高亮开启功能显得鸡肋,似无用武之处。
对开发者来讲:对想开发画板的程序员,该画布基础功能的实现确是减少了开发者不少的前期工作量,但刚开始觉得该控件只是在canvas上增加了基础画板功能,并没有替他高层的特性。因此产生偏见:微软团队相比开发这样一个鸡肋的控件,不如把本来的canvas控件做强做好。
查阅资料后,发现inkcanvas在canvas基础上提供了接收手写笔开发的输入以及对Strokes的特定默认属性(即每次用户的输入都会变成一个Strokes对象),这点对于画笔工具,提供了极大方便。
结论:高级画板工具开发者,instead of Canvas, pls choose InkCanvas.
2. PasswordBox
这是一个真正令我make no sense的控件。
见下图:
该控件功能一目了然,即实现密码的保密输入。但蹊跷之处在于右端的眼睛按钮的检查提示。它使用方式是:长按提示,密码可显示,以检查密码是否输入正确。这种设计模式是好的,它隐藏了一个很人性化功能:给不熟悉自己密码的人以明文输入。日常生活中,有人经常会记不牢自己密码,会选择明文输入自己密码。但是这个眼睛按钮必须持续按住才会明文显示输入的密码,按钮松开即变为密文。也就是说,对于想明文输入密码的用户必须点一下按钮输几个密码字符,再点提示按钮,再...
好的设计理念,变为错误实践后的扭曲。若索性指定密文输入,为何还暴露密码位数?
3. ToggleButton
此控件与toggleSwitch有一摸一样的功能。换句话说,它们的唯一区别大概是在样式上了。对设计来说,后者更具有自然美学属性,如其名,像一个真正的switch。由此,toggleButton,在switch控件对比下显得相形见绌了。
4. ProcessRing
我觉得人类对某种心理活动是尤为敏感以至于会焦虑恐惧--没底。
微软这个富有标志性的processbar将人类“心里没底”这个消极心理反映得尤为具体。不过要先说的是,之所以富有标志性,其设计理念是很优美的。这种圆点旋转依次的滞后性甚能反映出加载的等待过程,不得不说微软的UI设计师脑洞还是相当了得。
但是好的设计理念再一次被实践为扭曲品。
唯一想说的一点建议就是:加上计时的接口(短时加载不需要提示,不使用该接口便是)。
理由:虽然并不是所有进度加载都需要数字化显示,进度显示不能完全反映一个进程的执行情况。有可能一个程序加载到90%,却只花了两分钟,另一个程序加载到了20%却已经花费两小时。而以我的使用经验,微软经常把此控件使用在长时加载的进程中,比如系统更新。倘若我想知道我进行了多长时间?(经常会有自启动的程序以至于你不知它何时开始,还是比如系统更新)
如果能在转圈中心加上计时器(比如转10圈,timer+1,以数字形式显示在中心),我便对进程已加载的时间有了解,以判断决定自己下一步的操作(你不想浪费时间了,想立即停止)。解决了心里没底之恐惧。
5. Hub
我觉得一个精致的控件应具备的条件是:在万千素材大集合中,选出的那些特征最小子集。比如没有能替代Button、Image、TextBox的控件。而Hub这个控件给我的感觉便是微软DIY的一个小UI,还达不到作为一个常用控件来引用的广度。使用各类控件的目的,就是增加开发人员的自定义程度,而此控件减小了可自定义的程度,把开发思路限制在这样一个既成的设计模式上。
利用其他控件组合完全可以实现Hub这一控件,由此,它便不是一个特征最小子集。就像化学元素有限定的数量一样,我觉得优秀的控件也应有限定的数量,不应该妥协地拼凑。如果控件开发人员时怀居里夫人那种不断探索与进取的精神,我相信UI界会更显活力与精彩。