抽象类非常简单:
public abstract class Widget : UserControl { public abstract void Close(); }
实施在这里:
public partial class OnlineUserWidget : Widget { ..... }
和XAML
<local:Widget x:Class="Prototype.Widgets.OnlineUserWidget" xmlns:local="clr-namespace:Prototype.Widgets" .... </local:Widget>
最后错误:
无法创建“Widget”的实例.
在Microsoft.Expression.DesignModel.Core.InstanceBuilderOperations.InstantiateType(Type type,Boolean supportInternal,Boolean supportProtected)
在Microsoft.Expression.DesignModel.InstanceBuilders.ClrObjectInstanceBuilder.InstantiateTargetType(IInstanceBuilderContext context,ViewNode viewNode)
在Microsoft.Expression.DesignModel.InstanceBuilders.ClrObjectInstanceBuilder.Instantiate(IInstanceBuilderContext context,ViewNode viewNode)
在Microsoft.Expression.Platform.Silverlight.InstanceBuilders.DependencyObjectInstanceBuilder.Instantiate(IInstanceBuilderContext context,ViewNode viewNode)
在Microsoft.Expression.Platform.Silverlight.InstanceBuilders.FrameworkElementInstanceBuilder.Instantiate(IInstanceBuilderContext context,ViewNode viewNode)
在Microsoft.Expression.Platform.Silverlight.InstanceBuilders.UserControlInstanceBuilder.Instantiate(IInstanceBuilderContext context,ViewNode viewNode)
在MS.Internal.Services.DesignModeValueProviderService.DesignModeValueProviderBuilder.Instantiate(IInstanceBuilderContext context,ViewNode viewNode)
在Microsoft.Expression.DesignModel.Core.ViewNodeManager.Instantiate(ViewNode viewNode)
this.DefaultStyleKey=typeof(Widget);
然后确保你有一个分配给小部件的样式,你就会摇滚和罗林. UserControl最适用于一次性情况,您无需重新模板控件或从中继承控件.