Silverlight3控件在Blend 3上的设计时扩展

 最近用Blend3做Silverlight3开发,发现用原来的方法写自定义控件的设计时扩展不能用了,经过研究才发现 Blend3 里面的设计时扩展有所改变,原理和实现方式没有变,但接口变了。原来的实现可参考如下连接:Silverlight  自定义控件设计时扩展

主要的改变如下:

1.MetadataRegistration实现的接口改为了IProvideAttributeTable

2.引用的设计时扩展组件改了,新的引用如下:

<Reference Include="Microsoft.Windows.Design.Extensibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.Windows.Design.Interaction, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
  Silverlight 3.0的 System.Windows还是需要引用。

3.最重要的一点:在MetadataRegistration中应添加如下声明,否则不起作用:

using System.ComponentModel;


[assembly: ProvideMetadata(typeof(MyTestControl.Design.MetadataRegistration))]

namespace MyTestControl.Design
{
    public class MetadataRegistration : IProvideAttributeTable
    ....

}

 

4.目录结构改变:原来要求xxxx.xxxCtrl.DLL和xxxx.xxxCtrl.Design.DLL要放到同一目录下,现在是分目录存放,设计扩展DLL放在控件DLL同一目录的Design子目录下。

 

示例控件的源码下:MyTestControl.rar[不能上传附件???]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值