您的位置:首页 > 其它

分享初学者的第一个WPF应用程序——Timer线程时时刷新当前系统时间赋值于相关属性,并将其值绑定于TextBlock的Text属性

2010-09-13 09:03 295 查看
这个例子嘛是源于《WPF专业编程指南》(李应保著),这是我学习WPF以来看到第一个比较具体的例子,也是我在VS开发环境中写的第一个例子,感觉这个例子不错(当然书中还有几处错误)、能把好多知识点都连贯起来,所以献丑与大家分享一下,哈哈…

先看一下效果图吧:
自定义类扩展BlockText代码

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Threading;

namespace TimeWPF
{
/// <summary>
/// 自定义TextBlock
/// </summary>
public class MyTextBlock :TextBlock
{
/// <summary>
/// 声明一个相关属性
/// </summary>
public static DependencyProperty TimeProperty;

/// <summary>
/// 静态构造函数
/// </summary>
static MyTextBlock()
{
//实例化一个属性与元数据间的关系
FrameworkPropertyMetadata meta = new FrameworkPropertyMetadata();
meta.Inherits  = true;

//将另一类型 作为 已经注册的 依赖属性的所有者来添加
TimeProperty = TimeWindow.TimeProperty.AddOwner(typeof(MyTextBlock));

//重写特定类型上的元数据
TimeProperty.OverrideMetadata(typeof(MyTextBlock), meta);
}

public MyTextBlock() :base()
{

}

/// <summary>
/// MyTextBlock.TimeProperty
/// CLR属性
/// </summary>
public DateTime Time
{
set { SetValue(TimeProperty, value); }
get { return (DateTime)GetValue(TimeProperty); }
}

}
}


好了,代码大概就这些了,下面再写一些于之相关的东东吧。
(1)WPF应用程序提供了8个提供程序用于设置依赖属性的值它们的优先级从高到底依次为:
1、本地值;2、样式触发器;3、模板触发器;4、样式设置程序;5、主题样式设置程序;6、主题样式设置程序;7属性值传递;8、默认值;

(2) 改天关注一下数据绑定语法。

呵呵…… 都没有注意到时间九点了啊,该工作了、改天继续……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐