博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 自定义DateControl DateTime控件
阅读量:6214 次
发布时间:2019-06-21

本文共 5682 字,大约阅读时间需要 18 分钟。

自定义日期控件,月份选择。如下是日期的一些效果图。

具体的样式、颜色可以根据下面的代码,自己调节即可

  

1、日期控件的界面

View Code

2、日期控件的后台

public partial class DateSelectControl : UserControl    {        public DateSelectControl()        {            InitializeComponent();        }        public Brush MonthForeGround        {            get { return (Brush)GetValue(MonthForeGroundProperty); }            set { SetValue(MonthForeGroundProperty, value); }        }        public static readonly DependencyProperty MonthForeGroundProperty =        DependencyProperty.Register("MonthForeGround",        typeof(Brush), typeof(DateSelectControl), new PropertyMetadata(Brushes.White));        public DateTime Value        {            get { return (DateTime)GetValue(ValueProperty); }            set            {                SetValue(ValueProperty, value);            }        }        public static readonly DependencyProperty ValueProperty =        DependencyProperty.Register("Value",        typeof(DateTime), typeof(DateSelectControl), new PropertyMetadata(DateTime.Now));        private void MonthUserControl_OnLoaded(object sender, RoutedEventArgs e)        {            var data = new MonthUserControlModel()            {                MonthForeGround = MonthForeGround,            };            TblYear.Text = Value.Year.ToString();            int month = Value.Month;            switch (month)            {                case 1:                    {                        BtnMonth1.IsChecked = true;                    }                    break;                case 2:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 3:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 4:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 5:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 6:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 7:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 8:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 9:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 10:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 11:                    {                        BtnMonth2.IsChecked = true;                    } break;                case 12:                    {                        BtnMonth2.IsChecked = true;                    } break;            }            this.DataContext = data;        }        private void BtnPrevious_OnClick(object sender, RoutedEventArgs e)        {            int month = Value.Month;            int year = Convert.ToInt32(TblYear.Text) - 1;            var newDate = new DateTime(year, month, 1);            Value = newDate;            TblYear.Text = year.ToString();        }        private void BtnNext_OnClick(object sender, RoutedEventArgs e)        {            int month = Value.Month;            int year = Convert.ToInt32(TblYear.Text) + 1;            var newDate = new DateTime(year, month, 1);            Value = newDate;            TblYear.Text = year.ToString();        }        private void ButtonMonth_OnClick(object sender, RoutedEventArgs e)        {            int year = Value.Year;            var button = sender as RadioButton;            int month = Convert.ToInt32(button.Content.ToString().Replace("月", ""));            var newDate = new DateTime(year, month, 1);            Value = newDate;        }    }    public class MonthUserControlModel    {        public Brush MonthForeGround { get; set; }        public string Year { get; set; }        public int Month { get; set; }    }
View Code

3、界面引用

一般我们通过弹窗的方式,来选择日期

    
View Code

GitHub代码下载:

 

作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
你可能感兴趣的文章
CentOS 7,使用yum安装Nginx
查看>>
DefaultHandler中方法解读
查看>>
vim 编辑器常用命令
查看>>
Spring Batch 背景
查看>>
flume-ng学习
查看>>
系统集成资质培训 - 关于变更
查看>>
IT人怎么赶走不快乐的心情?
查看>>
MySQL新增字段、修改字段位置和查询存储过程的SQL代码
查看>>
git: fatal: Could not read from remote repositorygit: fatal: Could not read from remote repository
查看>>
php编译安装加入service
查看>>
你的隐私安全吗:Cookie到底是什么?
查看>>
MySQL的复制
查看>>
vi命令大全
查看>>
找不到或无法加载主类HelloWorldAPP?
查看>>
IE通过注册表设置每次检查较新版本
查看>>
LeetCode:Path Sum - 树的根节点到叶节点的数字之和
查看>>
MySql协议讲解-事务协议篇
查看>>
Oracle Database 各版本补丁下载地址
查看>>
我的友情链接
查看>>
Exchange2010 sp3恢复被禁用的邮箱
查看>>