这个程序的主要部分似乎与例外有关。
using System.Drawing;
using Framework.pages;
namespace Framework
{
public partial class MainWindow : Window
{
public string status;
public MainWindow()
{
InitializeComponent(); // Unhandled exception here
InitializeTheme();
activationStep page = new activationStep();
page.loadPage();
}
// etc etc
这是抽象类
namespace Framework.pages
{
abstract class template : MainWindow
{
public abstract void loadPage();
public abstract void loadTheme();
}
}
这是激活步骤类
using System.Windows.Media;
namespace Framework.pages
{
class activationStep : template
{
public override void loadPage()
{
//this.loadTheme();
}
public override void loadTheme()
{
// Default green activation button
//activateButton.Background = (SolidColorBrush)new BrushConverter().ConvertFromString(Framework.theme.darkGreen);
//activateButton.BorderBrush = (SolidColorBrush)new BrushConverter().ConvertFromString(Framework.theme.borderGreen);
// Set form error color to red
//activationFormError.Foreground = System.Windows.Media.Brushes.Red;
}
// etc etc
问题是如果我从MainWindow类中注释掉这两行:
activationStep page = new activationStep();
page.loadPage();
该程序运行正常,尽管activStep类中的所有内容都被注释掉了(即使它们没有被注释掉)?我完全不知道为什么我得到这个特殊的例外,因为肯定没有任何强烈的循环或任何东西。
- 值得注意的是,表单中加载的组件确实不多,而且通常运行顺畅。
答案 0 :(得分:7)
你正在“追加”来自activationStep
的{{1}},后者又来自template
,其构造函数会创建一个新的MainWindow
...等等。
此循环运行一段时间,然后您获得activationStep
。
您需要重新考虑您的设计。