Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将startupuri更改为派生窗口类_C#_Wpf - Fatal编程技术网

C# 将startupuri更改为派生窗口类

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

假设在一个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指向默认的主窗口,我根本不想要它。。。我想让它直接指向我的双派生
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();
    }
}