打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
建立Silverlight自定义控件(4)--添加自定义属性

SilverLight学习笔记--建立Silverlight自定义控件(4)--添加自定义属性

   下面我们来以一个MyText属性为例演示如何创建一个自定义属性,这个例子仍将会用到前面的内容。首先我们要为DependencyObject的属性声明一个公有的DependencyProperty,这个属性是静态的,可以用于数据绑定,声明代码:
 public static DependencyProperty TextProperty;
 静态属性在静态构造函数中初始化,先看代码:
       static SimpleButton()
        {

            TextProperty 
= DependencyProperty.Register("MyText",
                                           
typeof(string),
                                           
typeof(SimpleButton),
                                           
new PropertyMetadata("默认值"new PropertyChangedCallback(SimpleButton.OnTextPropertyChanged)));   
        }
 DependencyProperty应该由DependencyProperty.Register创建,在MSDN中,这个函数的原型如下:
public static DependencyProperty Register(
    
string name,
    Type propertyType,
    Type ownerType,
    PropertyMetadata typeMetadata
)

其中name是属性在XAML中使用的名字,propertyType则是属性的类型,注意这个属性理论上可以是任何类型,但是一般只使用整数、布尔、字符串、还有UI元素这些类型,其它类型需要定义复杂的字符串到对象的属性文法作为转换规则(之后可能会单写一篇blog讲converter)。ownerType就是我们自己定义的类了。typeMetadata有点复杂,PropertyMetadata构造函数有3个重载,提供选择指定defaultValue和propertyChangedCallback中任意一个或者同时指定2个。原型如下:

public PropertyMetadata
(
    Object defaultValue,
    PropertyChangedCallback propertyChangedCallback
)

 

defaultValue是属性的默认值没什么可说,propertyChangedCallback也很简单,就是当属性改变时的处理函数,这个是把属性同我们的类联系起来的关键了,PropertyChangedCallback 是个委托类型,它的签名也可以在MSDN查到:
public delegate void PropertyChangedCallback
(
    DependencyObject d,
    DependencyPropertyChangedEventArgs e
)

下面是我们对MyText属性的具体实现:

Code

 

接下来,我们回到MySLbutton项目测试我们新加的属性是否生效。修改Page.xaml文件中的MySilverButton控件属性如下:
<custom:MySilverButton x:Name="MyFirstSLbutton" Click="MyFirstSLbutton_Click" MyText="自定义属性值">
        
</custom:MySilverButton>

其中,MyText就是我们自定义的属性,当我们进行上述修改时,我们可以立刻看到显示效果。当然,我们也可以在Page.xaml.cs中对此属性进行动态赋值,代码如下:

 

 this.MyFirstSLbutton.MyText = "动态赋值给自定义属性";

下一篇:
SilverLight学习笔记--建立Silverlight自定义控件(5)--绑定动画效果  

前往:Silverlight学习笔记清单
0
0
(请您对文章做出评价)
« 上一篇:SilverLight学习笔记--建立Silverlight自定义控件(3)--操作控件内部成员
» 下一篇:SilverLight学习笔记--建立Silverlight自定义控件(5)--绑定动画效果
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
WPF学习笔记三 依赖属性
在silverlight中使用矩形构建一个按钮文本属性的关键代码
Silverlight实例教程 - Validation用户提交数据验证捕获
c#-从DataTemplate设置的自定义DependencyProperty
DependencyProperty使用中的3个场景,讨论PropertyChangedC...
Silverlight 2.0 系列文章索引
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服