怎么样创建Silverlight的自定义控件
2008-10-04 11:37:49 来源:WEB开发网在你的control中获得对象引用
打开 MyLabel.xaml.cs 或 MyLabel.xaml.vb 进行编辑.
添加一个命名为implementationRoot的FrameworkElement类型的变量. 然后改变InitializeFromXaml 调用,把它的返回值赋给implementationRoot. 当你做完这些后,你的代码应该和下面的例子一样了.
接下来, 把 implementationRoot 作为object tree的开始点,这样你就可以得到TextBlock element的引用了. 如果你不调用 FindName 而使用 "this" 或者 "Me" ( Control base), 则不对,因为这么还不存在object tree. object tree 只在载入完XAML文件后生成的. 在这儿, 为TextBlock添加一个变量.
CS
TextBlock tb;
VB
Private m_tb As TextBlock
加入第三行代码,来调用 FindName的构造函数,这样得到了TextBlock的引用.
CS
tb = implementationRoot.FindName("tb") as TextBlock;
VB
m_tb = m_implementationRoot.FindName("tb")
为控件定制属性和事件
一般情况下, 控件是没有暴露任何属性或事件的.你可以定义公有的属性(使用public setters),这样你无论是在标记文件或是代码文件中都可以对控件的实例进行设置.同样的道理,你也可以定义共用的事件. 在本篇 QuickStart中, 你将跟着示例对FrameworkElement的两个基本的外观尺寸属性进行设置 , Height 和 Width.你将添加两个自定义的属性到MyLabel,这将应用到TextBlock 的属性值.
添加属性
在 MyLabel.xaml.cs 或 MyLabel.xaml.vb, 添加MyLabel的Height属性,以此来设置外面的implementationRootCanvas 宽度. 你必须隐藏这个属性,因为这个属性已经在Control中存在了, 但是 Control.Height 却没有和你的控件产生任何联系.
Tags:怎么样 创建 Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››创建SQL2005自动备份,定期删除的维护计划
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››创建动态表单 javascript
- ››怎么样在sharepoint 2010 中操作List的办法
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››创建一个Twisted Reactor TCP服务器
更多精彩
赞助商链接