WPF编程里让TextBlock动态的显示时间

WPF编程里让TextBlock动态的显示时间,第1张

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 应用程序开发:怎样给出生日期下拉框绑定年月日选项等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9767493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存