none
WPF 的 InitializeComponent() 方法的 提问: RRS feed

  • 问题

  •         public MainWindow()
            {
                InitializeComponent();
            }
            public MainWindow()
            {
                //InitializeComponent();
            }

    注释掉InitializeComponent()方法程序也可以编译成功;

    请问InitializeComponent()的作用是什么?

    2014年4月25日 1:44

答案

  • InitializeComponent的作用主要是用来注册事件和设置在xaml定义的变量。比如,你在xaml中定义了一个按钮

    <Button x:Name="button"/>

    在调用InitializeComponent之前,如果你在代码里面要使用button这个变量的话,你会发现button为null:

    public MainWindow()
    {
        //InitializeComponent();
        button.Width = 100;//出错,button为null
    }
    另外,InitializeComponent是会被默认调用的,就算你注释掉,系统也会在在窗体的EndInit()之前调用InitializeComponent,所以,就算注释掉也能在EndInit()之后正常使用控件变量和事件。


    • 已标记为答案 Wayne1900 2014年4月25日 5:20
    2014年4月25日 2:59

全部回复

  • 感觉注释掉InitializeComponent 对于程序好像没有影响,可是没有作用是不会平白无故的添加这句初始化Component的方法,我想探究下缘由,感谢嗯
    2014年4月25日 2:08
  • InitializeComponent的作用主要是用来注册事件和设置在xaml定义的变量。比如,你在xaml中定义了一个按钮

    <Button x:Name="button"/>

    在调用InitializeComponent之前,如果你在代码里面要使用button这个变量的话,你会发现button为null:

    public MainWindow()
    {
        //InitializeComponent();
        button.Width = 100;//出错,button为null
    }
    另外,InitializeComponent是会被默认调用的,就算你注释掉,系统也会在在窗体的EndInit()之前调用InitializeComponent,所以,就算注释掉也能在EndInit()之后正常使用控件变量和事件。


    • 已标记为答案 Wayne1900 2014年4月25日 5:20
    2014年4月25日 2:59