怎么在silverlight中使用自定义枚举属性
1个回答
2016-03-18
展开全部
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 却没有和你的控件产生任何联系. CS public virtual new double Height { get { return implementationRoot.Height; } set { implementationRoot.Height = value; UpdateLayout(); } } VB Public Overridable Shadows Property Height() As Double Get Return m_implementationRoot.Height End Get Set(ByVal value As Double) m_implementationRoot.Height = value UpdateLayout() End Set End Property 添加一个带NEW关键字的属性Width 给 MyLabel. CS public virtual new double Width { get { return implementationRoot.Width; } set { implementationRoot.Width = value; UpdateLayout(); } } VB Public Overridable Shadows Property Width() As Double Get Return m_implementationRoot.Width End Get Set(ByVal value As Double) m_implementationRoot.Width = value UpdateLayout() End Set End Property 你需要再提供一个重要的属性给MyLabel, 这就是它的显示文字. 定义一个 Text 属性给 MyLabel, 这样你就可以为你的控件TextBlock设置Text属性了(该控件是和tb引用关系的). CS public String Text { get { return tb.Text; } set { tb.Text = value; UpdateLayout(); } } VB Public Property Text() As String Get Return m_tb.Text End Get Set(ByVal value As String) m_tb.Text = value UpdateLayout() End Set End Property 你也可以定义更多的属性,比如设置文字颜色的属性. , 在这种情况下,你需要将 Brush 类型强行转换为 SolidColorBrush来避免设置属性的局限性, 当然,设置的属性值应该符合element 语法. CS public SolidColorBrush LabelColor { get { return (SolidColorBrush)tb.Foreground; } set { tb.Foreground = (SolidColorBrush)value; } } VB Public Property LabelColor() As SolidColorBrush Get Return m_tb.Foreground End Get Set(ByVal value As SolidColorBrush) m_tb.Foreground = DirectCast(value, SolidColorBrush) End Set End Property 保存MyLabel.Xaml.cs (或 MyLabel.xaml.vb) 然后build 这个 project. 目前,你还不能对你的project进行debug 或运行, 因为你的control还只是一个library,它并没有被其它的Silverlight页使用.下面,我们将添加一些test文件到你的project. 别外一个可选的方法是,创建一个包含多个project 的solutions,然后再将control project的assembly加进来,然后再使用. 测试你的 Control 对control进行测试 新开一个Visual Studio. 创建一个新的基本的 Silverlight project (查看 怎么来创建一个Silverlight Project). 你怎么样 命名没有关系, 因为接下来你将会对project中的文件进行整理,最后加入到主project中来.来源: myspace.silverlight
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询