从Silverlight中的UserControl派生

Guy*_*Guy 3 silverlight silverlight-2.0

在Silverlight 2中,我有一个控件的类声明:

public partial class ClassX : UserControl
Run Code Online (Sandbox Code Playgroud)

我希望将UserControl替换为派生自UserControl的ClassXBase,但我得到了合理的错误"'ClassX'的部分声明不能指定不同的基类"

但是,我无法找到替换其基类的其他分部类.知道这个其他的部分课程在哪里或者我是怎么做的?

Sha*_*uth 12

如果包含UserControl基类的命名空间,只要使用命名空间,就可以执行此操作.例如:

public abstract class MyBaseUserControl : UserControl
{
  // ...
} 
Run Code Online (Sandbox Code Playgroud)

然后你必须在XAML中使用这个类(注意我的命名空间,然后使用新的命名空间作为文档的根目录):

<!-- Page.xaml -->
<my:BaseUserControl 
    x:Class="SilverlightApplication11.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:my="clr-namespace:SilverlightApplication11"
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">

    </Grid>
</my:BaseUserControl>
Run Code Online (Sandbox Code Playgroud)

这不会神奇地改变代码隐藏中的基类,所以将代码更改为基类:

public partial class Page : BaseUserControl
{
  public Page()
  {
    InitializeComponent();
  }
}
Run Code Online (Sandbox Code Playgroud)