Silverlight 4 自定义控件属性设置
来源:互联网 发布:淘宝买家佣金怎么查 编辑:程序博客网 时间:2024/06/04 19:44
最近在写一个silverlight 自定义控件的时候,在设置属性的时候遇到些问题。
上网搜索了一番,很多博客都引用博客园中万事大吉的一个silverlight自定义空间开发系列教程。大致方法是
public static DependencyProperty TextProperty;
public string MyText
{
get
{
return (string)base.GetValue(TextProperty);
}
set
{
base.SetValue(TextProperty, value);
}
}
接着重写一个静态构造函数。在其中注册这个属性
static MySilverButton()
{
TextProperty = DependencyProperty.Register("MyText",
typeof(string),
typeof(MySilverButton),
new PropertyMetadata("默认属性值", new PropertyChangedCallback(MySilverButton.OnTextPropertyChanged)));
}
在上面大家也看到了,这里注册了一个回调函数,剩下的事情就是这个回调函数的事 了。private static void OnTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
(d as MySilverButton).OnTextPropertyChanged(e);
}
void OnTextPropertyChanged(DependencyPropertyChangedEventArgs e)
{
try
{
TextBlock BgTextBlock = this.GetTemplateChild("ButtonCaption") as TextBlock;
BgTextBlock.Text = e.NewValue as string;
}
catch (Exception ex)
{
string ks = ex.ToString();
}
大家也看到了,简简单单一个属性需要这么多代码。
我在我的空间里定义了5个属性,那么。。。。。。。
我的解决方法是, 在onApplyTemplate()方法中进行设置。
public static DependencyProperty TextProperty;
public string MyText
{
get
{
return (string)base.GetValue(TextProperty);
}
set
{
base.SetValue(TextProperty, value);
}
}
这部分不动
接着重写一个静态构造函数。在其中注册这个属性
static MySilverButton()
{
TextProperty = DependencyProperty.Register("MyText",
typeof(string),
typeof(MySilverButton),
new PropertyMetadata("默认属性值));
}
将注册的回调函数取了。去了之后怎么更改变量呢?
这时候我在onApplyTemplate()方法中进行设置,
TextBlock tb = base.GetTemplateChild("textBlock1") as TextBlock;
tb.Text = content;
两行代码搞定。
不知道这样做会带来什么问题,没有做过什么测试。
但是一般的功能没问题。
如果你也向我一样,那就用吧
- Silverlight 4 自定义控件属性设置
- 【android】自定义控件属性设置
- 自定义控件出属性设置
- 自定义控件属性的设置
- Silverlight 自定义控件 模板化控件 (一)属性
- android 自定义控件,自定义属性设置
- 自定义控件学习:设置自定义控件的属性
- Silverlight 控件自定义样式
- 自定义silverlight控件
- 自定义silverlight控件
- silverlight之自定义控件
- 设置自定义控件集合编辑器属性
- VB6:自定义控件如何设置默认属性
- Android 自定义控件xml设置属性
- 自定义控件----自定义属性
- SilverLight中自定义用户控件
- SilverLight中自定义图标控件
- Silverlight 2 创建自定义控件
- 爬楼梯问题和Fibonacci数
- Hibernate中cascade为all-delete-orphan与all的区别
- java 对象类型Boolean与基本类型boolean的联系、区别
- 軟考之他人見
- form标签后多一行空白的解决方
- Silverlight 4 自定义控件属性设置
- SQL 拼接字符串 列转行
- 数据和逻辑永远都比界面重要
- ubuntu network connection 消失的解决办法
- SQL 纯小数 转字符串
- dynamic DLL 调用错误 -The value of ESP was not properly saved across a function call
- [转]理解C#值类型与引用类型
- 台式机gnome-mplayer出错解决
- 2011/05/30 robotium程序中调用browser的方法