C# 将startupuri更改为派生窗口类
假设在一个WPF项目中,我构建了一个抽象窗口类,这样我就可以在我创建的每个窗口中添加一些基本属性,这些属性派生自:C# 将startupuri更改为派生窗口类,c#,wpf,C#,Wpf,假设在一个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
// 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指向默认的主窗口,我根本不想要它。。。我想让它直接指向我的双派生derivedWindow
类的一个新实例?可能吗
我两个都试过了
StartupUri=“abs_window.xaml”
和StartupUri=“derivedWindow.xaml”>
但是第一个无法工作,因为它是抽象的,第二个无法工作,因为没有现有的.xaml文件
如果我添加一个新的“window”.xaml文件,它将只是一个普通窗口,而不是我的派生类型 代表Hans的意见回答,除非他选择回答: 首先在默认的
App
类(App.xaml.cs
)中创建了一个启动方法,就像Hans的链接一样
但是该链接没有提到的是通过替换一个
StartupUri
来更改App.xaml
文件,该文件似乎总是引用.xaml
,使用Startup
方法StartupUri=“MainWindow”
替换我发现的Startup=“App\u Startup”
,使用启动事件:看起来很完美,谢谢你,答案总是很简单,但有时网上的信息太多,不知道从哪里开始。虽然我已经创建了App_启动事件,但它没有被触发。仍然不确定在StartupUri中放入什么来启动启动事件。啊,没关系!我发现我只需要将StartupUri
替换为Startup
,并将其指向=“App\u Startup”
-谢谢!!
public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{
derivedWindow window = new derivedWindow();
window.Show();
}
}