当前位置:网站首页 / AY梦 / 正文

AYUI内置的万能日期控件-web界的my97

时间:2018年12月19日 | 作者 : aaronyang | 分类 : AY梦 | 浏览: 833次 | 评论 0

新建AYUI7项目

image.png

建立完全后,我们来学怎么使用。打开HomeView,添加代码

   <Grid x:Name="root" Background="White">

        

    </Grid>

控件外观的颜色,根据背景的主题来的,如果是图片,自动分析图片,自动配色。


1 平面演示

image.png

<control:AyCalendar HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    SelectMode="DateTime"></control:AyCalendar>

SelectMode有以下的值

        None,

        YearMonth,

        OnlySelectDate,

        DateTimeH,

        DateTimeNoSecond,

        DateTime,

        HM,

        HMS

外观演示: None是无效值,无需选择

  DateTimeH 显示年月日 时

image.png

DateTimeNoSecond 年月日时分

image.png

HM 时分

image.png

HMS 时分秒

image.png

YearMonth 年月

image.png

OnlySelectDate 年月日

image.png

加上上面演示的 DateTime,年月日时分秒模式,一共7种

单独的年月日时分秒控件是(以下控件没有级联控制,自己解决,它们也是AyCalendar的基础组成部分)

年:AyDateBoxYear

月:AyDateBoxMonth

日:AyDateBoxDay

时:AyDateBoxHour

分:AyDateBoxMinute

秒:AyDateBoxSecond


下面的一些按钮可以控制是否显示

IsShowClear 控制是否 显示 清空按钮

IsShowToday 控制是否 显示今天按钮

ExtButtonsVisibility 是否显示 整个按钮组( 清空 今天 确定)


接下来,讲下基本的 AyDateBoxCalendar,基于AyCalendar的日期选择控件


2 基本模式 AyDateBoxCalendar

  <control:AyDateBoxCalendar  HorizontalAlignment="Center"

                                        Width="190"  Height="32"

                                        VerticalAlignment="Center"></control:AyDateBoxCalendar>

image.png

拉伸模式,自适应外围

   <Grid Height="38">

            <control:AyDateBoxCalendar  HorizontalAlignment="Stretch"

                                        Width="auto" 

                                        Height="auto"

                                        VerticalAlignment="Stretch"></control:AyDateBoxCalendar>

        </Grid>

image.png

默认选择模式是 年月日模式,选择一次日,就会自动关闭了,年月日时分秒模式是双击日,或者单击确定按钮,到了AyDateBoxCalendar模式,所有的控制,全在DateRule这个属性控制了,

这个表达式,是我实现的,格式json,键值设置。 我称作 AY日期表达式

下面学习这个表达式,我的控件暂时,不支持图标触发,打开AyCalendar供用户选择


3 起始日期

默认的起始日期为 1991-04-04 (我生日)

当日期框为空值时,将使用 1991-04-04 做为起始日期

  <control:AyDateBoxCalendar  HorizontalAlignment="Center"

                                        Width="200" DateRule="startDate:'1991-04-04'"

                                        Height="32"

                                        VerticalAlignment="Center"></control:AyDateBoxCalendar>

image.png

4 alwaysUseStartDate属性应用

默认的起始日期为 1991-04-04

当日期框无论是何值,始终使用 1991-04-04 做为起始日期

从下面开始,只列出表达式的写法的代码了

startDate:'1991-04-04',alwaysUseStartDate:true

image.pngimage.png


5. 下拉,输入,导航选择日期

  1. 通过导航图标选择

    image.png

  2. 直接使用键盘输入数字

    image.png

3.直接从弹出的下拉框中选择,支持鼠标滚轮

    image.png


6 支持周显示

  isShowWeek:true

image.png

利用onpicked事件把周赋值给另外的文本框

OnPicked

这里我用后台xaml.cs事件获得的,你也可以用AYUI的MVC模式,Action.Event="OnPicked" IsSendEventArgs=true即可

获得时间:AyDatePickEventArgs e参数,会传给你

e.PickedDateTime.HasValue

关于周的显示,你可以绑定,日期选择控件的Week依赖属性即可,Text="{Binding ElementName=dbc,Path=Week}",dbc是一个AyDateBoxCalendar的控件

image.png


7 只读开关,高亮周末功能

设置readOnly属性 true 或 false 可指定日期框是否只读 

设置highLineWeekDay属性 ture 或 false 可指定是否高亮周末

高亮颜色暂时没提供对外的暴露,固定的红色

readOnly:true,highLineWeekDay:true

image.png


8 操作按钮自定义

清空按钮和今天按钮,可以根据需要进行自定义,它们分别对应 isShowClear 和 isShowToday 默认值都是true

最好把readOnly置为true,否则即使隐藏了清空按钮,用户依然可以在输入框里把值delete掉


isShowClear:false,readOnly:true

image.png



9 自动选择显示位置

当控件处在页面边界时,它会自动选择显示的位置,所以没有必要担心弹出框会被页面边界遮住的问题了.

使用positon属性指定,弹出日期的坐标为{left:100,top:50}

position:{left:100,top:50}

image.png


10 自定义星期的第一天

各个国家的习惯不同,有些喜欢以星期日作为第一天,有些以星期一作为第一天.

相关属性:firstDayOfWeek: 可设置 0 - 6 的任意一个数字,0:星期日 1:星期一 以此类推

以星期一作为第一天

firstDayOfWeek:1

image.png

星期三为第一天

image.png




11 使用内置参数

除了使用静态的日期值以外,还可以使用动态参数(如:%y,%M分别表示当前年和月)

下例演示,年月日使用当年当月的1日,时分秒使用00:00:00作为起始时间

startDate:'%y-%M-01 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true

image.png无论怎么打开都是image.png






12 自定义格式

yMdHmswW分别代表年月日时分秒星期周,你可以任意组合这些元素来自定义你个性化的日期格式.

在我的日期控件里,支持下面的,当然还支持其他的,后面再讲

%y当前年

%M当前月

%d当前日

%ld本月最后一天

%H当前时

%m当前分

%s当前秒

{}运算表达式,如:{%d+1}:表示明天

我的日期控件会根据 dawteFmt来自动切换 界面供用户选择,当然基于AyCalendar的SelectMode


年月日时分秒

dateFmt:'yyyy年MM月dd日 HH时mm分ss秒'

image.png   

dateFmt:'yyyy-MM-dd HH:mm:ss'

image.png

 时分秒

dateFmt:'H:mm:ss'

image.png

快速选择会根据文本框的日期,自动生成5个推荐的,如果没有,就是系统当前的时分秒,然后推荐

image.png

年月

dateFmt:'yyyy年MM月'

image.png

 取得系统可识别的日期值,如果用户填写的日期不符合DateFmt就会有提示,这里建议时间是只读的,是有好处的。

image.png

星期, 月 日, 年

dateFmt:'dddd, MMMM d, yyyy'   具体参考C#的StringFormat的日期时候的 东东

image.png


13 双月功能

支持年月日,年月日时分秒两种,

doubleCalendar:true,dateFmt:'yyyy-MM-dd'

image.png

doubleCalendar:true,dateFmt:'yyyy-MM-dd HH:mm:ss'

image.png

当然可以配合周是否显示等其他的基本限制

image.png


14 不合法日期

  日期超过最大最小日期限制, 日期格式不正确, 日期是禁用的然后手动输入的,日期闰月平月的日期等,都会弹出不合法日期的提示框


15 图标和清除事件

设置 Icon="{x:Null}",换其他的图标 Icon="path_clock"  显示图标的控件是AyIconAll控件,所有图标都能显示,png,jpg,gif,path,font,fontawesome等

image.png

OnCleared是单击了清空 按钮触发的


16 多国语言和皮肤

暂时只支持 中文,暂时除了跟随主题换色,暂时没其他的主题,支持暂时固定死的,然后基于AyFormInput写的,所以 AyDateBoxCalendar支持AY表达式。



关于动态时间的选择限制,下篇文章继续讲

这里才演示了AyDateBoxCalendar的30%的功能点




====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========




















推荐您阅读更多有关于“”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

合肥科大智能常年招聘.NET,Java,Web前端,有想找想换工作的私聊我AY唯一QQ:875556003和AY交流

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表