我有一个WPF应用程序,我使用多个表单.当我们启动被称为的应用程序时,有一个主要形式被打开MainWindow.xaml.然后,此表单具有多个表单,这些表单根据用户选项打开.有表格StartClassWindow.xaml.目前我正在处理此表单,所以我希望它直接启动而不是MainWindow.xaml.所以要做到这一点,我改变了app.xaml startupuri:
<Application x:Class="Class.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DispatcherUnhandledException="Application_DispatcherUnhandledException"
StartupUri="StartClassWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
但后来它开始给出如下错误:
在类型'Class.StartClassWindow'上找不到匹配的构造函数.您可以使用Arguments或FactoryMethod指令来构造此类型.行号"3"和行位置"9".
这是StartClassWindow.xaml.cs:
namespace Class
{
public partial class StartClassWindow : System.Windows.Window
{
public StartClassWindow(string classData)
{
InitializeComponent();
className = classData;
function();
}
//rest of the code.
}
}
Run Code Online (Sandbox Code Playgroud)
Sal*_*ari 13
您需要为此添加一个无参数构造函数StartClassWindow:
public StartClassWindow(string classData)
{
InitializeComponent();
className = classData;
function();
}
public StartClassWindow()
{
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你不希望有另一个构造函数,你可以覆盖OnStartup的方法App.xaml.cs,但你应该删除了StartupUri="StartClassWindow.xaml"你的App.xaml第一个.如下所示:
protected override void OnStartup(StartupEventArgs e)
{
StartClassWindow st = new StartClassWindow("");
st.Show();
}
Run Code Online (Sandbox Code Playgroud)