哪位大虾能够很好的解释下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怎么保存组件属性啊?
哪位大虾来教教我怎么保存组件属性啊?
就是保存到文件里,需要的时候恢复出来!帮帮忙啊!或者叫着动态保存?
注册下
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属性和依赖属性的?请不要粘贴官方文档的主要内容,如果未能解决你的问题,请参考以下文章