Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > WPF - Dependency Property System
【标  题】:WPF - Dependency Property System
【关键字】:WPF,Dependency,Property,System
【来  源】:http://www.cnblogs.com/czhenq/archive/2006/11/21/567799.html

WPF - Dependency Property System

Your Ad Here

前两天介绍了GradientBrush ,今天我们来看看WPF的基础:Dependency Property System。在WPF中,所有的属性(可以在XAML进行设置的属性)都依赖于此功能,所以说他是WPF的基础我想并不为过吧。.在WPF中,Dependency Property System为我们提供了一个访问XAML中设置的属性的入口,通过他我们可以为属性设置默认的值,设置属性的表达式、值的范围等,还可以通过他获得属性改变的事件。
Dependency Property System在框架中表现为DependencyProperty类。
所有可以在XAML中使用的属性都必须用DependencyProperty类中的Register方法进行注册(在以后我们开发自定义控件的时候将会频繁的使用到它)。
如果我们想在自定义的控件中使用自定义的类型需要完成以下2步:(此段内容翻译自Win SDK)
1.   使用Register方法来注册自定义类型。方法将返回一个DependencyProperty对象,用于接收此返回值的变量必须是
静态只读(static readonly)的,且变量的名字必须已Property结尾,而他的访问域应该是public.
例如:在自定义Class1中你要注册一个自定义类型:Test
public static readonly DenpendencyProperty TestProperty = DenpendencyProperty.Register(“Test”,
                                  typeof(Test),typeof(Class1));

Register的另外一个重载将接受一个PropertyMetadata类型的参数,用于实现对属性值进行限制,接收事件更改通知等功能。

2.   为程序提供访问的入口。所谓的入口就是我们一般的属性。例:

public Test SampleTest
   
{
            
get
            
{
                
return this.GetValue(TestProperty);

            }

            
set

            
{
                
this.SetValue(TestProperty, value);
            }

}

今天只是简单的介绍了下Dependency Property System。目前3.0资料还不多,希望我的介绍对大家学习3.0有点帮助。
明天我将会给出一个简单的例子。等不及的朋友可以用Reflector去反编译3.0的类库,随便找个控件看看。推荐:DockPanel
注:本文基于.Net FrameWork 3.0正式版,参考Win SDK _Vista_RC1 。文章为目前所学知识的总结,随着学习的深入,将会随时更改文章的内容。

Dependency Property DEMO

注:本例子只是一个简单的演示。
由于控件内部还有其他必须的部分没有实现,所以对属性值的更改将不会得到体现。我将会在以后进行介绍。

NBear V3.3.6使用感受:【上一篇】
配置.net 3.0开发环境:【下一篇】
【相关文章】
  • .NET多线程编程(2):System.Threading.Thread类
  • 更改数据库用户的密码(sys,system)
  • IBM小型机代理(郑州证海)IBM System p5 520服务器 入门者的超值选择
  • System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
  • 我读 Systematic Software Testing (二)-风险分析
  • 在visual C#2005中添加对System.Configuration引用
  • laszlosystems官方的网站界面改版!
  • VC2005中System::String转换为std::string
  • The 2007 Microsoft Office System RTM is ready to rock !
  • System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.引起的思考
  • 【随机文章】
  • Serv-U:快速构建功能强大FTP服务器
  • fastt200光纤卡添加及光纤硬盘分区划分
  • accept
  • 《MS SQL Server 2000管理员手册》系列——7. 安装Microsoft SQL Server
  • 可切换多国语言
  • JSP中文乱码解决方案-Tomcat5.0版
  • 离开rpm的日子──我的贱兔安装日志zt
  • oracle基本概念和术语
  • dom解析xml文件(从工程中读取xml文件和在工程中创建一个xml文件的demo)
  • 浅谈优化web2.0(—)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.