Silverlight DependencyObject 依赖属性
2010-11-14 16:39
295 查看
silverlight提供了属性系统,管理依赖属性。依赖属性的用途在于提供一种方法基于其他输入的值计算属性。这些其他输入可以包括外
部属性、实时属性确定机制、重用模板或者通过对象树中其他元素的父子关系获得的值,还以可以提供将更改传播到其他属性的回调。
下面就来给Button添加一个依赖属性:
通过这种方式就给类ButtonExpand扩展了一个依赖属性。
也可以通过propertyChangedCallbac在属性改变时创建一个回调函数。实现代码如下:
silverlight给控件添加依赖属性时,不定义DefaultStyleKey样式就继承父类的样式,如果定义了可以使用用户自定义样式,一条语句就可以搞定:
有时候我们需要在模板生效的时候对某些模板成员进行操作,如绑定事件、调整属性等,就需要通过overrride父类OnApplyTemplate来
响应模板生效。,下面代码演示了在模板生效时改变背景颜色。
下面给出全部示例代码:
http://files.cnblogs.com/Clivia/SilverlightDependencyProperty.rar
部属性、实时属性确定机制、重用模板或者通过对象树中其他元素的父子关系获得的值,还以可以提供将更改传播到其他属性的回调。
下面就来给Button添加一个依赖属性:
public static readonly DependencyProperty TextProperty = DependencyProperty.Register( "Text", typeof(string), typeof(ButtonExpand), null); public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); } }
通过这种方式就给类ButtonExpand扩展了一个依赖属性。
也可以通过propertyChangedCallbac在属性改变时创建一个回调函数。实现代码如下:
public event DependencyPropertyChangedEventHandler TextPropertyChanged;
public static readonly DependencyProperty TextProperty = DependencyProperty.Register( "Text", typeof(string), typeof(ButtonExpand), new PropertyMetadata(new PropertyChangedCallback(ButtonExpand.OnTextPropertyChanged))); public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); } } private static void OnTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { (d as ButtonExpand).OnTextPropertyChanged(e); } void OnTextPropertyChanged(DependencyPropertyChangedEventArgs e) { if (TextPropertyChanged != null) { TextPropertyChanged(null,e); } }
silverlight给控件添加依赖属性时,不定义DefaultStyleKey样式就继承父类的样式,如果定义了可以使用用户自定义样式,一条语句就可以搞定:
public ButtonExpand() { this.DefaultStyleKey = typeof(ButtonExpand); }
有时候我们需要在模板生效的时候对某些模板成员进行操作,如绑定事件、调整属性等,就需要通过overrride父类OnApplyTemplate来
响应模板生效。,下面代码演示了在模板生效时改变背景颜色。
public override void OnApplyTemplate() { base.OnApplyTemplate(); (GetTemplateChild("Background") as Border).Background = new SolidColorBrush(Colors.Red); }
下面给出全部示例代码:
http://files.cnblogs.com/Clivia/SilverlightDependencyProperty.rar
相关文章推荐
- Silverlight&WPF依赖属性DependencyProperty讲解
- Silverlight:Dependency Property(依赖属性)
- 理解Silverlight - Dependency Properties 依赖属性
- 背水一战 Windows 10 (67) - 控件(控件基类): DependencyObject - CoreDispatcher, 依赖属性的设置与获取, 依赖属性的变化回调
- Silverlight:Dependency Property(依赖属性)学习笔记
- [Silverlight]监听指定控件(FrameworkElement)的依赖属性(DependencyProperty)的更改
- Silverlight:Dependency Property(依赖属性)学习笔记
- Silverlight:Dependency Property(依赖属性)学习笔记
- Silverlight:Dependency Property(依赖属性)学习笔记
- #116 – Dependency Property Values Are Stored in the DependencyObject(依赖属性存储在DependencyObject中)
- Spring框架xml配置文件 复杂类型属性注入——数组 list map properties DI dependency injection 依赖注入——属性值的注入依赖于建立的对象(堆空间)
- #151 – Dependency Properties Remember Non-Coerced Values(依赖属性强制转换之前的值会被记住)
- Knockoutjs实战开发:属性监控(Observables)和依赖跟踪(Dependency tracking )
- 稳扎稳打Silverlight(50) - 4.0绑定之DependencyObject绑定, 索引器绑定, StringFormat, TargetNullValue和FallbackValue,
- Silverlight Object 标签属性介绍、初始化参数的设置和获取、客户端系统信息获取
- 稳扎稳打Silverlight(50) - 4.0绑定之DependencyObject绑定, 索引器绑定, StringFormat, TargetNullValue和FallbackValue, CollectionViewSource
- 稳扎稳打Silverlight(50) - 4.0绑定之DependencyObject绑定, 索引器绑定, StringFormat, TargetNullValue和FallbackValue, CollectionViewSource
- 稳扎稳打Silverlight(50) - 4.0绑定之DependencyObject绑定, 索引器绑定, StringFormat, TargetNullValue和FallbackValue, CollectionViewSource
- 稳扎稳打Silverlight(50) - 4.0绑定之DependencyObject绑定, 索引器绑定, StringFormat, TargetNullValue和FallbackValue, CollectionViewSource
- WPF and Silverlight 学习笔记(十三):依赖项属性和路由事件