让我们说在WPF项目中我已经构建了一个抽象窗口类,所以我可以为我创建的每个窗口添加一些基本属性:
// Abstract window, based on normal window
public abstract partial class abs_window : Window
{
// example of added property to my abstract class
protected int xxx = 25;
public abs_window()
{
InitializeComponent();
}
}
// Another class dervied from my abstract window
public partial class derivedWindow : abs_window
{
void aa()
{
// Random method aa() to show access to the protected xxx int
MessageBox.Show(Convert.ToString(xxx));
}
}
所以,这编译得很好,但我的StartUpUri指向我根本不想要的默认MainWindow ...我希望它直接指向我的双重派生derivedWindow
类的新实例?这可能吗?
我试过了两个
StartupUri="abs_window.xaml"
和StartupUri="derivedWindow.xaml">
,但第一个无法正常工作,因为它是抽象的,而第二个不起作用,因为没有现有的.xaml文件
如果我添加一个新的“window”.xaml文件,它只是一个普通的窗口,而不是我的派生类型!?
答案 0 :(得分:0)
代表汉斯的评论回答,除非他也选择回答:
首先在默认的App
类(App.xaml.cs
)中创建了一个启动方法,例如Hans'链接here
public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{
derivedWindow window = new derivedWindow();
window.Show();
}
}
但该链接未提及的是更改App.xaml
文件,方法是替换StartupUri
,.xaml
似乎始终引用Startup
方法StartupUri="MainWindow"
{我发现here
Startup="App_Startup"
{1}}