Calendar 用于按月/日历视图展示日期,可选显示农历、今天按钮、日期范围限制,并支持在日期上显示徽标。
import win.ui;
var winform = win.form(text="AntdUI Calendar";right=760;bottom=500)
winform.add(host={cls="custom";left=20;top=20;right=730;bottom=450;z=1})
import dotNet.AntdUI;
import System;
var calendar = AntdUI.Calendar(winform.host);
calendar.Full = true;
calendar.ShowChinese = true;
calendar.ShowButtonToDay = true;
calendar.SetMinMax(System.DateTime(2026,1,1), System.DateTime(2026,12,31));
calendar.Value = System.DateTime(2026,7,4);
calendar.DateChanged = function(sender,value){
winform.text = "选中日期:" + tostring(value);
}
winform.show();
win.loopMessage();
Value:当前日期,类型为 System.DateTime。MinDate / MaxDate:可选择的最小/最大日期。Full:撑满显示区域。ShowChinese:显示农历信息。ShowButtonToDay:显示“今天”按钮。Radius:圆角。Back / Fore:背景与文字颜色。SetDate(date):设置日期并返回控件自身。SetMinMax(min,max):设置日期范围。SetBadge(listOrDictionary):设置日期徽标。LoadBadge():重新加载徽标。当前扩展库验证的常用写法是创建 dotNet.list("AntdUI.DateBadge"),逐个加入 AntdUI.DateBadge(dateText,content,color),再传给 SetBadge:
import System.Drawing;
var badges = dotNet.list("AntdUI.DateBadge");
var badge = AntdUI.DateBadge("2026-07-06","巡检",0xFF1677FF);
badge.Radius = 4;
badge.Size = 0.6; //相对 Calendar 字体的缩放比例,不是像素字号
badges.Add(badge);
calendar.SetBadge(badges);
calendar.LoadBadge();
DateBadge 常用属性包括:
Date:日期字符串,建议使用 yyyy-MM-dd。Content:徽标内容文本或数值。Fill:徽标填充色;aardio 中直接使用 0xAARRGGBB 数值。Round / Radius:圆形或圆角样式。Align:相对日期单元格的对齐位置。Size:徽标字体相对于 Calendar.Font 的缩放比例,默认值为 0.6,不是像素字号;一般使用 0.5~0.8,也可以不设置而沿用默认值。误设为 11 会得到基础字体 11 倍的超大徽标。OffsetX / OffsetY:徽标相对日期单元格的横向与纵向偏移。更完整的排期面板请参考 Calendar 项目排期日历。
DateChanged:日期改变时触发,常用第二个参数为 System.DateTime。ItemPaint / ItemPaintBegin:自定义绘制日期单元格。ItemMouseClick / ItemMouseDown / ItemMouseUp:日期单元格鼠标事件。