Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Subclassing WPF Window

I created a WPF Window

than i modified its class definition to:

public partial class myWindow : mySubclassedWindow

compiler throws:

"Partial declarations of 'myWindow' must not specify different base classes"

myWindow.Xaml:

x:Class="WpfGridtest.myWindow"

so somewhere, there is another partial class, that inherits from "Window" but i cannot find it. How can i override my case to use subclassed window?


thanks Jon, that was the problem. also found this helpful article: http://geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx

like image 207
Sonic Soul Avatar asked Jul 07 '10 18:07

Sonic Soul


1 Answers

That would be in the declaration of myWindow itself - the designer will be generating the other half of the partial type based on the XAML, based on your element type.

You can use an element of <mySubclassedWindow> instead, so long as you give it the appropriate namespace and assembly references.

EDIT: Okay, so here's a short example, in a project called WpfApplication. My Window subclass:

using System.Windows;

namespace WpfApplication
{
    public class EnhancedWindow : Window
    {
    }
}

My 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>

My partial type:

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

It all builds with no problem. I think that's what you wanted to do, right?

like image 94
Jon Skeet Avatar answered Oct 07 '22 23:10

Jon Skeet