扩展页面类

是否可以在C#的WPF工具包(或者其他任何WPF类)中扩展“Page”类? 我试图做的:

public class ExtendedPage : Page{ protected void doStuff(){ // lots of joy n pleasure } } public partial class RandomWindow : ExtendedPage{ private void randomMethod(){ doStuff(); // causes error } } 

我问的原因非常明显:在扩展Page-class(ExtendedPage)之后,子类(RandomWindow)无法访问其基类的方法。 这是(至少是我的猜测)由RandomWindow偏离的情况引起的。 由于这个类不幸是由WPF生成的(链接到相应的* .xaml),我无法找到部分类的其他部分。

这个问题可能导致一个非常明显的答案,让我看起来像一个完全白痴,但显然我无法弄明白。 我可能会补充一点,我刚刚开始使用C#,我的编程起源是Java。

确切的错误消息是“’type’的部分声明不能指定不同的基类”(CS0263)。

作为对其中一条评论的回应:* .xaml中的“Page”声明似乎生成了一个代码隐藏文件,其基类是“Page”(而不是ExtendedPage)。 改变这似乎也不起作用,编译器抱怨没有找到类型的ExtendedPage。

  // to  

‘type’的部分声明不能指定不同的基类

好吧,那个人很简单,你可能有一个XAML,看起来像这样:

  

然而,隐式指定Page作为基础,您需要:

  

在扩展Page-class(ExtendedPage)之后,子类(RandomWindow)无法访问其基类的方法

这是错的。 如果可能的话,扩展类可以让您访问基类的所有public成员和protected成员。

部分仅与不同文件中类的代码的分布有关,但与编译后的真实存在无关。 编译后,它变成一个单一的固体类型。

你在这里发布的应该工作得很好。