zoukankan      html  css  js  c++  java
  • 【作业】5个不合理的Xaml Control

     CalendarView

           CalendarView能提供日历显示,可以让用户点击选择日期,可以用函数传入日期,非常方便。

           不过呢每一个CalendarViewDayItem的框架都是定死的,最多就是加一个事件密度条,没有办法去添加新的东西。如果我想给日历添加一些新的花样,比如,像下面的日历那样,数字占左部很大空间,右上角做一些记录,右下角可以打标记,就不是那么容易了。

           我很喜欢GridView的Item templates功能,他可以做到只需要在Xaml里面写一个子界面模板,就能在一张表中全部以这个模板显示变化的内容。如果CalendarView能加入Item templates就好了。


    一款非常精美的日历


    ColorPicker

           这个控件用于让用户选择颜色,如下图。支持各种样式的选择器,支持RGB、RGBA、HSV颜色表示方式。


    uwp颜色选择器

           这个组件的主要问题在用户体验上。每次拖动滑条时,颜色区的颜色会刷新,会变量或者变暗,这涉及到图片处理过程。在颜色被重新算好之前,颜色区会变成纯白,看起来就像是白闪了一下。所以编辑时时不时会白闪一下,让眼睛很难受。如果能在新颜色算好之前,继续用旧颜色填充颜色区,就不会出现白闪的情况。


     Acrylic

            这个控件实现的是Windows7著名的Aero特效的功能,用在你的界面中非常漂亮。效果就是对背景进行模糊,还可以叠加颜色,如下图。


    效果图

           不过叠加模式只有一个透明度模式,如果能有正片叠底、滤色等多种模式那就更好了。其实这些叠色模式要加都不难,都可以用一个叫BlendFunc的框架套起来。比如,普通模式就是{GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA},正片叠底就是{GL_ZERO, GL_SRC_COLOR}。BlendFunc模型能做出PS中所有的叠加方式。


     Border

           Border可以用于给元素添加边框,被添加边框的元素将作为其子元素存在。

           不知道为什么要单独做一个Border控件,给控件做Border属性就可以了,比如html/css,就可以给每个元素设置border属性,还能控制不同方向border的样式不同。这里单独加一个Border还增加了界面层次的深度。


     ScrollViewer

           这个控件可以装下一个体积更大的内容,然后通过滑动条进行浏览。本身支持了滚轮,缩放的功能。


    一个有水平滑条和垂直滑条的ScrollViewer

           不过目前美中不足的是,左右的移动比较不便。在没有触控板的台式机上,要左右滑动时,就需要用鼠标去拉左右滑动条了。另外,我也不知道怎么用它做鼠标拖拽移动效果。

           这里其他的一些软件就做得很好。比如默认情况下滚轮控制上下移动,按住alt时再滚动滚轮就变成左右移动。还可以用鼠标拖拽,然后就可以改变浏览区。

           C4D还有鼠标中键拖拽,左键移动,右键转动视角等复杂操作。


    拥有多种控制方式的C4D

  • 相关阅读:
    vue分享二维码
    Linux的软件安装
    linux命令操作
    禅道的使用方法
    测试管理工具的安装和介绍
    测试Bug
    软件缺陷和软件缺陷的种类
    测试计划和测试用例
    双肩包,椅子,电梯的测试用例
    软件生命周期的模型
  • 原文地址:https://www.cnblogs.com/lotsofone/p/8590583.html
Copyright © 2011-2022 走看看