如何正确使用Subclassed silverlight控件?

时间:2010-08-19 06:56:33

标签: silverlight user-controls silverlight-4.0

我创建了这个类,我希望覆盖内容控件的这个特定事件。

public class MyContentControl : ContentControl
{
    protected override void OnKeyUp(KeyEventArgs e)
    {
        //do something 
        //..........
        e.Handled = true;
    }
}

然而,当我在我的XAML中使用此控件时,一切都编译并正常工作,但我得到一个运行时异常,我不确定为什么?有人能指出我正确的方向......

我得到的例外是

  

XamlParseException

更新(显示例外情况)

在XAML中我有:

xmlns:ctrls="clr-namespace:SilverlightProject.CustomControls"

我用它像:

<ctrls:MyContentControl Grid.Column="0" x:Name="_contentControl" VerticalAlignment="Center" HorizontalAlignment="Center" />

2 个答案:

答案 0 :(得分:0)

内容控件需要在某处创建默认模板(例如,在generic.xaml中)。它们没有匹配的XAML文件,如用户控件。

如果您可以提供更多信息,我可以向您展示如何创建适当的模板。

答案 1 :(得分:0)

这有很多原因。
首先。提供完全限定的命名空间。

而不是

xmlns:ctrls="clr-namespace:SilverlightProject.CustomControls"

使用

xmlns:ctrls="clr-namespace:SilverlightProject.CustomControls;assembly=YourAssebmlyName"

如果那样,没有用。 您可以直接将控件附加到应用程序。然后,启用Debug - &gt;例外。选中CLR execetion Thrown选项复选框。你有相当多的可能性来了解原因。