子类化WPF窗口

时间:2010-07-07 18:43:47

标签: wpf subclassing

我创建了一个WPF窗口

比我将其类定义修改为:

public partial class myWindow : mySubclassedWindow

编译器抛出:

“'myWindow'的部分声明不得指定不同的基类”

myWindow.Xaml:

x:Class="WpfGridtest.myWindow"

所以某处,还有另一个部分类,它继承自“Window”,但我找不到它。如何覆盖我的情况以使用子类窗口?


感谢Jon,这就是问题所在。 还找到了这篇有用的文章: http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx

1 个答案:

答案 0 :(得分:8)

这将在myWindow本身的声明中 - 设计者将根据您的元素类型基于XAML生成部分类型的另一半。

您可以使用<mySubclassedWindow>的元素,只要您为其指定适当的命名空间和程序集引用。

编辑:好的,这是一个简短的例子,在一个名为WpfApplication的项目中。我的Window子类:

using System.Windows;

namespace WpfApplication
{
    public class EnhancedWindow : Window
    {
    }
}

我的XAML:

<y:EnhancedWindow x:Class="WpfApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:y="clr-namespace:WpfApplication"
        Title="MainWindow" Height="350" Width="525">
</y:EnhancedWindow>

我的部分类型:

namespace WpfApplication
{
    public partial class MainWindow : EnhancedWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

这一切都没有问题。我想这就是你想要做的,对吧?