哪位大虾能够很好的解释下WPF的CLR属性和依赖属性的?请不要粘贴官方文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪位大虾能够很好的解释下WPF的CLR属性和依赖属性的?请不要粘贴官方文档相关的知识,希望对你有一定的参考价值。

CLR属性就是一般我们用来写类的public变量封装,比如你定义一个Car的类,有属性是Name,那么Name就是CLR属性。
依赖属性是WPF特有的,一般给WPF的控件定义,比如你定义一个Car的控件,有依赖属性为“Name”,有属性是它调用的是GetValue,SetValue方法,定义的格式是:public static readonly DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Car), new PropertyMetadata());作用就是如果一个控件定义了一个依赖属性,在引用的时候就可以直接在xaml里面用,类似的用法就如<Button Text=""/>的Text用法一样,<Car Name=""/>。
参考技术A 我对这个了解不深,试试抛砖引玉吧。

简单点说:自定义的CLR属性完全可以由程序员自己控制每行代码,本质上就是一对Get/Set方法,(所以Java中根本就没有提供“属性”,就是编写Get/Set方法)。如果你乐意,完全可以不编写属性,全部改成Getxxx()/Setxxx()这样的方法。——CLR属性不是类的数据成员,而是方法成员。

而WPF内置了一个“依赖项属性管理器”(我杜撰的名字,但确实有这么个机制),所有的依赖项属性都要向这玩意儿注册。然后,由这个“管理器”按一定规则决定依赖项属性如何发生作用。这些规则可以查看MSDN文档,但这个管理器却是“不可见”的。
=======================================================================
建议楼主试看《WPF编程宝典》中关于依赖项属性的部分,貌似比《WPF揭秘》中的相关内容好懂些——因为讲得比《WPF揭秘》更多些。本回答被提问者和网友采纳
参考技术B 的飒飒

参考资料:的让人

哪位大虾来教教我delphi怎么保存组件属性啊?

哪位大虾来教教我怎么保存组件属性啊?
就是保存到文件里,需要的时候恢复出来!帮帮忙啊!或者叫着动态保存?

参考技术A 这个叫做对象的持久化,序列化,串行化,都是一个意思,翻译不同而已下面2个函数,将对象以流的形式保存到string里或把string转换为对象。可以将转换后的string写入文件,需要时再读出来。类似的例子很多,搜一下”Delphi 持久化”或”Delphi 序列化”使用的前
注册下
RegisterClasses functionComponentToStr(AComponent: TComponent): string;
var
BinStream: TMemoryStream;
StrStream: TStringStream;
s: string;
begin
BinStream := TMemoryStream.Create;
try
StrStream := TStringStream.Create(s);
try
BinStream.WriteComponent(AComponent);
BinStream.Seek(0, soFromBeginning);
ObjectBinaryToText(BinStream, StrStream);
StrStream.Seek(0, soFromBeginning);
Result := StrStream.DataString;
finally
StrStream.Free;
end;
finally
BinStream.Free
end;
end;function StrToComponent(constValue: string;
Instance: TComponent): TComponent;
var
StrStream: TStringStream;
BinStream: TMemoryStream;
begin
StrStream := TStringStream.Create(Value);
try
BinStream := TMemoryStream.Create;
try
ObjectTextToBinary(StrStream, BinStream);
BinStream.Seek(0, soFromBeginning);
Result := BinStream.ReadComponent(Instance);
finally
BinStream.Free;
end;
finally
StrStream.Free;
end;
end;
参考技术B 使用ini配置文件,将属性都放进去,每次初始化的时候读取文件内容!

以上是关于哪位大虾能够很好的解释下WPF的CLR属性和依赖属性的?请不要粘贴官方文档的主要内容,如果未能解决你的问题,请参考以下文章

哪位大虾知道Eclipse 构建路径中Order and Export 如何设置?起啥作用?

WPF基础教程之属性系统

哪位大虾来教教我delphi怎么保存组件属性啊?

依赖属性

WPF的依赖属性和附加属性(用法解释较全)

有哪位大虾能帮我解释一下系统中的常用系统文件功能啊?