社区
WPF/Silverlight
帖子详情
依赖属性到底是什么?为什么要用依赖属性?
s_111111
2010-11-12 01:15:06
RT。希望能给个简而明了的回答。
...全文
887
11
打赏
收藏
依赖属性到底是什么?为什么要用依赖属性?
RT。希望能给个简而明了的回答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mark1-
2011-09-14
打赏
举报
回复
透彻了才知道有什么用。
海涵德
2010-11-13
打赏
举报
回复
不一定要把概念搞得太透,会使用就可以了。
海涵德
2010-11-13
打赏
举报
回复
在动画代码中使用较多。
海涵德
2010-11-13
打赏
举报
回复
依赖属性主要是在代码中操作和使用样式。
绿色夹克衫
2010-11-13
打赏
举报
回复
个人感觉就是方便用数据驱动UI
dui_cky
2010-11-12
打赏
举报
回复
依赖属性,简单的来说,就是 你拖一个控件出来,属性栏里面的东西(如:text,background==),使用起来比较节省内存。
依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值。这些其他输入可以包括外部属性(如用户首选项)、实时属性确定机制(如数据绑定和动画/演示图板)、重用模板(如资源和样式)或者通过与对象树中其他元素的父子关系而获取的值。此外,实现依赖项属性还可以提供可将更改传播到其他属性的回调。
对于属于 DependencyObject 并以某种方式在 UI 中可见的 Silverlight 类型,由于该对象的大部分可设置属性都是依赖项属性,因此这些类型可以支持动画。对于 FrameworkElement 派生类型,依赖项属性还可以支持绑定(作为目标)和样式设置。虽然出于 WPF 兼容性的原因而使有些只读属性仍然是作为依赖项属性来实现的,但只读属性是依赖项属性的可能性非常小。对于 DependencyObject 上的某个可设置属性不是依赖项属性这种不常见的情况,该属性将无法支持动画。同样,FrameworkElement 上不是依赖项属性的某个可设置属性将不能是绑定目标,也不能由样式来设置。
如何定义:
public static readonly DependencyProperty IsSpinningProperty =
DependencyProperty.Register(
"IsSpinning", typeof(Boolean),
typeof(SilverlightExampleClass), null
);
public bool IsSpinning
{
get { return (bool)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}
不懂的可以加我QQ,454162034
s_111111
2010-11-12
打赏
举报
回复
例子不错。能再多说些就更好了?能否有个比较全面的例子,能讲到大部分依赖属性的特性。
xinzhulu
2010-11-12
打赏
举报
回复
1
这个就是依赖属性系统的功能了.
其实在依赖属性内部有一个静态字典列表.以键值对的形式("属性名","值")保存着所有依赖属性及其属性的默认值.
如果我们去取值的话:
Color col = Button.BackColor(假设这个属性是没有重新赋值,用的是默认值)
这就是从那个字典表中根据属性名,取出对应的属性值.
但是如果有多少对象对一个依赖属性赋予了不同的值怎么办????
在依赖属性系统里还有一个值字典表,这个字典表维护了不同对象名使用的依赖属性和属性值.
程序在运行时,如果你修改了一个依赖属性的值,那么依赖属性系统会把这些对象名,属性名和属性值放入值字典表中.
xinzhulu
2010-11-12
打赏
举报
回复
现在,我们如果采用静态属性好不好???
大家都知道,静态成员是类成员,不管你实例化多少个对象,静态成员数量是不会增加的,那么是不是很省内存空间咧????? 肯定的.....
那好,我们现在实例化五个对象,每个对象都去使用同一个依赖属性,那会怎么样??
比方说,
Button1.BackColor = Colors.Red;
Button2.RackColor= Colors.Blue;
.......................
这里BackColor 是依赖属性(静态数据成员).....
你一定会想,静态成员在内存中只有独一份,如果五次修改这个成员的值,那么最终保存下来的只有最后一个赋值????
xinzhulu
2010-11-12
打赏
举报
回复
依赖属性也是属性.但和我们平常认为 的属性不一样,就是这个依赖属性是静态成员.
我们可以想象,在没有依赖属性之前,有一个类从父类继承十个属性,自已也有十个属性.就是二十个属性了.如果我们在程序中实例这个类,搞五个对象出来.那么运行时会分配一百个属性的空间,来容纳.
但是其中大部分属性都在编程时,都没有去修改属性值. 使用的都是父类或本类的初始时的默认值.
这样比较浪费内存空间.
比如我们在界面上拖五个按钮. 每个按钮都八,九十个属性, 但你的代码中去使用了多少个咧???这个你知道的....
WPF经典教程之
依赖
项
属性
和路由事件
本概述介绍 WPF
属性
系统以及
依赖
项
属性
的功能,这包括如何在可扩展应用程序标记语言 (XAML) 中和代码中使用现有的
依赖
项
属性
。..... (更多资源:http://cleopard.download.csdn.net/) (福利:...
初步了解WPF
依赖
属性
在WPF库实现中,
依赖
属性
使用普通的C#
属性
进行了包装,使得我们可以通过和以前一样的方式来使用
依赖
属性
。但必须明确,在WPF中我们大多数都在使用
依赖
属性
,而不是使用
属性
。
依赖
属性
重要性在于,在WPF核心特性,如...
Composer (精进) composer.json组织架构
作者和支持 08 composer.json 核心
属性
依赖
require 09 composer.json
依赖
require-dev 10 composer.json
依赖
conflict冲突 11 composer.json
依赖
replace 代替 12 composer.json
依赖
提供和建议 13 composer....
WPF--
依赖
属性
WPF--
依赖
属性
大家都知道WPF带来了很多新的特性,其中一个就是引入了一种新的
属性
机制——
依赖
属性
。
依赖
属性
出现的目的是用来实现WPF中的样式、自动绑定及实现动画等特性。
依赖
属性
的出现是WPF这种特殊的呈现原理...
WPF
依赖
属性
自定义
依赖
属性
和CLR
属性
不同,
依赖
属性
不是直接对私有变量的操纵,而是通过GetValue()和SetValue()方法来操作
属性
值的,可以使用标准的.NET
属性
定义语法进行封装,使
依赖
属性
可以像标准
属性
那样来使用,代码如下。
依赖
属性
的出现...
WPF/Silverlight
8,735
社区成员
12,029
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章