社区
WPF/Silverlight
帖子详情
依赖属性到底是什么?为什么要用依赖属性?
s_111111
2010-11-12 01:15:06
RT。希望能给个简而明了的回答。
...全文
982
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经典教程之
依赖
项
属性
和路由事件
Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR)
属性
的功能。这些服务通常统称为 WPF
属性
系统。由 WPF
属性
系统支持的
属性
称为
依赖
项
属性
。本概述介绍 WPF
属性
系统以及
依赖
项
属性
的功能,这包括如何在可扩展应用程序标记语言 (XAML) 中和代码中使用现有的
依赖
项
属性
。..... (更多资源:http://cleopard.download.csdn.net/) (福利:http://xuemeilaile.com/) WPF经典教程之WPF体系结构 http://download.csdn.net/detail/cleopard/7999393 WPF经典教程之WPF应用程序管理 http://download.csdn.net/detail/cleopard/8002969 WPF经典教程之WPF窗体 http://download.csdn.net/detail/cleopard/8002979 WPF经典教程之StackPanel、WrapPanel、DockPanel布局 http://download.csdn.net/detail/cleopard/8002985 WPF经典教程之Grid、UniformGrid布局 http://download.csdn.net/detail/cleopard/8002993 WPF经典教程之Canvas、InkCanvas布局 http://download.csdn.net/detail/cleopard/8002997 WPF经典教程之WPF控件模型 http://download.csdn.net/detail/cleopard/8002999 WPF经典教程之WPF控件内容模型 http://download.csdn.net/detail/cleopard/8003009 等。。。。
syrinj, Unity3D的简单
依赖
注入.zip
syrinj, Unity3D的简单
依赖
注入 Syrinj 轻量级
依赖
注入 &方便
属性
发布 1.1.1可用 ! (8/1/16)目录简介示例设置这是什么?为什么使用这个?文档文档扩展示例方便
属性
注入
属性
注释故障排除简介示例方便
什么是
依赖
属性
,它和以前的
属性
有什么不同?为什么在WPF会使用它?
在WPF中,
依赖
属性
(Dependency Property)是一种特殊类型的
属性
,用于在UI元素中存储和管理
属性
值。
属性
元数据:
依赖
属性
具有
属性
元数据,用于定义
属性
的行为和特性。•值继承和优先级:
依赖
属性
支持值的继承和优先级,使得
属性
的值可以从父元素传递给子元素,并根据不同的优先级进行覆盖。•数据绑定和样式:
依赖
属性
天生支持数据绑定和样式,使开发人员可以轻松地实现动态更新和样式化的UI元素。•
属性
更改通知:
依赖
属性
提供
属性
更改通知,使开发人员可以在
属性
值发生变化时做出相应的响应。
初步了解WPF
依赖
属性
一
依赖
属性
在WPF库实现中,
依赖
属性
使用普通的C#
属性
进行了包装,使得我们可以通过和以前一样的方式来使用
依赖
属性
。但必须明确,在WPF中我们大多数都在使用
依赖
属性
,而不是使用
属性
。
依赖
属性
重要性在于,在WPF核心特性,如动画、数据绑定以及样式中都需要使用到
依赖
属性
。WPF中的
依赖
属性
主要有以下三个优点:
依赖
属性
加入了
属性
变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量。许多之前需要写很多代码才能实现的功能,在WPF中可以轻松实现。 节约内存:在...
WPF
依赖
属性
自定义
依赖
属性
和CLR
属性
不同,
依赖
属性
不是直接对私有变量的操纵,而是通过GetValue()和SetValue()方法来操作
属性
值的,可以使用标准的.NET
属性
定义语法进行封装,使
依赖
属性
可以像标准
属性
那样来使用,代码如下。
依赖
属性
的出现是WPF这种特殊的呈现原理派生出来的,与.NET普通
属性
不同的是,
依赖
属性
的值是依靠多个提供程序来判断的,并且其具有内建的传递变更通知的能力。
依赖
项
属性
的重点在于“
依赖
”二字,既然是
依赖
了,也就是说
依赖
项
属性
的值的改变过程一定与其它对相关,不A
依赖
B就B
依赖
A,或者相互
依赖
。.....
WPF/Silverlight
8,757
社区成员
12,032
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章