社区
WPF/Silverlight
帖子详情
依赖属性到底是什么?为什么要用依赖属性?
s_111111
2010-11-12 01:15:06
RT。希望能给个简而明了的回答。
...全文
962
11
打赏
收藏
依赖属性到底是什么?为什么要用依赖属性?
RT。希望能给个简而明了的回答。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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经典教程之
依赖
项
属性
和路由事件
- **XAML声明**:在XAML中,
依赖
项
属性
可以直接作为元素的
属性
使用,或者通过嵌套元素来设置更复杂的值,如`<Button Background="Yellow">`或`<Button.Background><SolidColorBrush Color="Gold"/>...
syrinj, Unity3D的简单
依赖
注入.zip
syrinj, Unity3D的简单
依赖
注入 Syrinj 轻量级
依赖
注入 &方便
属性
发布 1.1.1可用 ! (8/1/16)目录简介示例设置这是什么?为什么使用这个?文档文档扩展示例方便
属性
注入
属性
注释故障排除简介示例方便
WPF
依赖
属性
自定义
依赖
属性
和CLR
属性
不同,
依赖
属性
不是直接对私有变量的操纵,而是通过GetValue()和SetValue()方法来操作
属性
值的,可以使用标准的.NET
属性
定义语法进行封装,使
依赖
属性
可以像标准
属性
那样来使用,代码如下。
依赖
属性
的出现...
WPF 入门笔记 - 05 -
依赖
属性
自定义
依赖
属性
的步骤中,最重要的就是
依赖
属性
的注册,定义的公共
属性
仅仅提供我们访问
依赖
属性
的便捷方法,不写也是可以的,只不过我们得在每次使用
依赖
属性
的时候都调用。第一个参数是该
依赖
属性
的名字,第二个...
WPF 自定义控件
依赖
属性
怎么实时变化?
WPF自定义控件
依赖
属性
怎么实时变化。
WPF/Silverlight
8,756
社区成员
12,030
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章