WEB开发网
开发学院图形图像Flash 怎么样创建Silverlight的自定义控件 阅读

怎么样创建Silverlight的自定义控件

 2008-10-04 11:37:49 来源:WEB开发网   
核心提示: 在你的control中获得对象引用 打开 MyLabel.xaml.cs 或 MyLabel.xaml.vb 进行编辑.添加一个命名为implementationRoot的FrameworkElement类型的变量. 然后改变InitializeFromXaml 调用,把它的返回值赋给im

在你的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 却没有和你的控件产生任何联系.

上一页  1 2 3 4 5 6  下一页

Tags:怎么样 创建 Silverlight

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接