从自定义类继承时 Silverlight Xaml 编辑器错误

标签 silverlight xaml inheritance

我创建了一个从 UserControl 继承的抽象类,并有一个抽象方法。我有几个控件实现了这个抽象类。 Silverlight 控件运行良好,但在 XAML 编辑器中,我抛出了 InstanceBuilderException,因此它不会让我查看 XAML 预览。有没有办法解决这个问题,或者我只是做错了什么?谢谢!

抽象类非常简单:

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)

最佳答案

UserControl 是在此类情况下使用的错误类。你可能想看看控制。要确保您的样式正确加载,请在控件中使用以下行:

this.DefaultStyleKey=typeof(Widget);

然后只需确保您为小部件分配了一个样式,您就会开始摇滚。 UserControls 最适用于不需要重新模板化控件或从它继承的一次性情况。

关于从自定义类继承时 Silverlight Xaml 编辑器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4411151/

相关文章:

php - 在子 PHP 之后自动调用父构造函数

wcf - 有没有一种方法可以从MIC流音频并在Silverlight中播放该流

Silverlight 像素 API

c# - DataTemplate 中的 WP7 缩放图像

xaml - 如何设置 xamarin 表单输入字段的禁用文本颜色?

ios - 多个 ViewController 继承导致 Apple Mach-O Linker Error

C#:将参数传递给回调

c# - 如何在不实例化新 ViewModel 的情况下设置 BindingContext

c# - ContentControl 换行问题

C++类继承设计选择