Xaml如下:
<Window x:Class="NetExampleMainWindow"
xmlns=">
用 DateTimePicker 就可以实现啊 ,这是个日期时间控件,修改Format属性为Custom,修改CustomFormat属性为yyyy-MM-dd,就可以让输出内容只有年月日了,这是你想要的效果吗
如果这个控件也满足不了你 就只能自己写一个控件了
可以,方法有2种,一种是用代码,一种是重写样式,我来演示一下用代码怎么实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//首先在你的App类,即创建项目的时候Appxaml下的类
public partial class App : Application
{
//在启动方法中为时间控件注册一个加载事件
void app_Startup(object sender,StartupEventArgs e)
{
EventManagerRegisterClassHandler(typeof(DatePicker),
FrameworkElementLoadedEvent,
new RoutedEventHandler(DatePicker_Loaded));
}
void DatePicker_Loaded(object sender, RoutedEventArgs e)
{
var dp = sender as DatePicker;
if (dp == null) return;
var wm = RecursionFindControl<ContentControl>(dp, "PART_Watermark");
if (wm == null) return;
//重新默认水印值
wmContent = "请选择一个日期";
}
/// <summary>
/// 递归寻找指定名称和指定类型的控件(辅助方法)
/// </summary>
/// <typeparam name="T">寻找的类型</typeparam>
/// <param name="reference">对象</param>
/// <param name="controlName">需要寻找的控件名称</param>
/// <param name="maxLevel">最大递归级数</param>
/// <param name="currentLevel">当前已经递归的级数</param>
/// <returns>返回寻找的类型</returns>
public static T RecursionFindControl<T>(DependencyObject reference, string controlName = "", int maxLevel = intMaxValue, int currentLevel = 1) where T : class
{
DependencyObject obj = null;
if (reference == null)
{
return obj as T;
}
for (int i = 0; i < VisualTreeHelperGetChildrenCount(reference); i++)
{
obj = VisualTreeHelperGetChild(reference, i);
FrameworkElement elemnt = obj as FrameworkElement;
if (elemnt == null)
{
break;
}
if (elemnt is T &&
((!stringIsNullOrEmpty(controlName)
&& elemntName == controlName)
|| stringIsNullOrEmpty(controlName)))
{
return obj as T;
}
else
{
if (currentLevel < maxLevel)//递归层级限制
{
obj = RecursionFindControl<T>(obj, controlName, maxLevel, currentLevel + 1) as DependencyObject;
if (obj != null)
{
return obj as T;
}
}
}
}
return obj as T;
}
}
DateTimeNowToString("d");
参数如下,冒号前面表示参数,冒号后面表示格式化后字符串的样子
PS:yyyy表示年,MM表示月,dd表示天,dddd表示星期几,HH表示24小时制的时间,mm表示分钟,ss表示秒
如 yyyy-MM-dd dddd HH:mm:ss 表示 2014-10-27 星期一 13:26:33
// d: 6/15/2008
// D: Sunday, June 15, 2008
// f: Sunday, June 15, 2008 9:15 PM
// F: Sunday, June 15, 2008 9:15:07 PM
// g: 6/15/2008 9:15 PM
// G: 6/15/2008 9:15:07 PM
// m: June 15
// o: 2008-06-15T21:15:070000000
// R: Sun, 15 Jun 2008 21:15:07 GMT
// s: 2008-06-15T21:15:07
// t: 9:15 PM
// T: 9:15:07 PM
// u: 2008-06-15 21:15:07Z
// U: Monday, June 16, 2008 4:15:07 AM
// y: June, 2008
//
// 'h:mm:ssff t': 9:15:0700 P
// 'd MMM yyyy': 15 Jun 2008
// 'HH:mm:ssf': 21:15:070
// 'dd MMM HH:mm:ss': 15 Jun 21:15:07
// '\Mon\t\h\: M': Month: 6
// 'HH:mm:ssffffzzz': 21:15:070000-07:00
以上就是关于WPF编程里让TextBlock动态的显示时间全部的内容,包括:WPF编程里让TextBlock动态的显示时间、wpf弄出来的时间锁定成了日期怎么办、c# wpf 应用程序开发:怎样给出生日期下拉框绑定年月日选项等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)