问题描述
ChrisAnderon的《EssentialWindowsPresentionfoundation》英文版第70页讲到,如果删除MainWindow.cs中的InitComponent,按钮将不会出现,只出现一个空窗口;可是我按照书中所述,删除MainWindow.cs中的InitComponent后,按钮依然出现,为什么呢,哪位高手知道吗?
解决方案
本帖最后由 hp8563 于 2016-04-27 22:26:53 编辑
解决方案二:
删过之后重新清理,重新编译试试
解决方案三:
引用1楼duanzi_peng的回复:
删过之后重新清理,重新编译试试
您没看明白我问的问题。
解决方案四:
InitializeComponent是编辑器自动生成的代码。删掉还会自动出来。initComponent应该是人工自己写的代码。
解决方案五:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。
解决方案六:
引用3楼winner2050的回复:
InitializeComponent是编辑器自动生成的代码。删掉还会自动出来。initComponent应该是人工自己写的代码。
抱歉,粗心了,应该是InitializeComponent();
解决方案七:
引用4楼shaoerbao的回复:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。
抱歉,我打错了,是InitializeComponent()。我可不是光看书,我有3年的WPF开发经验,只是最近对WPF自己产生的框架有深究的兴趣。我把此书全部看过一遍,也没看懂,也深入调试过InitializeComponent(),也没看懂,盼您指点指点一二。
解决方案八:
引用6楼hp8563的回复:
Quote: 引用4楼shaoerbao的回复:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。抱歉,我打错了,是InitializeComponent()。我可不是光看书,我有3年的WPF开发经验,只是最近对WPF自己产生的框架有深究的兴趣。我把此书全部看过一遍,也没看懂,也深入调试过InitializeComponent(),也没看懂,盼您指点指点一二。
3年了你都没有搞懂wpf的启动过程吗?这个Init方法只是自动生成的初始化方法,如果你的窗口都是用设计器或者写xml生成的,那不调用这个,界面上的东西就不会出现。但不意味着所有的控件必须在这个方法中创建,如果你的按钮是通过其他途径创建的,自然和它没关系。
解决方案九:
这个Init方法只是自动生成的初始化方法,如果你的窗口都是用设计器或者写xml生成的,那不调用这个,界面上的东西就不会出现。
解决方案十:
引用6楼hp8563的回复:
Quote: 引用4楼shaoerbao的回复:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。抱歉,我打错了,是InitializeComponent()。我可不是光看书,我有3年的WPF开发经验,只是最近对WPF自己产生的框架有深究的兴趣。我把此书全部看过一遍,也没看懂,也深入调试过InitializeComponent(),也没看懂,盼您指点指点一二。
不不,你资历比我大多了别用“您”这个字就像上次有人问路,在我身后叫了声“师傅,那个……”,我刚转身,这人马上改口“小伙子”……WPF创建窗体的过程我是不太了解,估计和其他的窗体程序差不多。你编译wpf项目之后,看下输出目录中的“obj/Debug/”里面“*.g.cs"和"*.g.i.cs"这种文件,可能会有点启发。
解决方案十一:
引用9楼shaoerbao的回复:
Quote: 引用6楼hp8563的回复:
Quote: 引用4楼shaoerbao的回复:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。抱歉,我打错了,是InitializeComponent()。我可不是光看书,我有3年的WPF开发经验,只是最近对WPF自己产生的框架有深究的兴趣。我把此书全部看过一遍,也没看懂,也深入调试过InitializeComponent(),也没看懂,盼您指点指点一二。
不不,你资历比我大多了别用“您”这个字就像上次有人问路,在我身后叫了声“师傅,那个……”,我刚转身,这人马上改口“小伙子”……WPF创建窗体的过程我是不太了解,估计和其他的窗体程序差不多。你编译wpf项目之后,看下输出目录中的“obj/Debug/”里面“*.g.cs"和"*.g.i.cs"这种文件,可能会有点启发。
这两个文件反复研究过,没有得出结论...
解决方案十二:
引用7楼shingoscar的回复:
Quote: 引用6楼hp8563的回复:
Quote: 引用4楼shaoerbao的回复:
你看错字了,而且的估计没看书中所说的上下文,而且感觉光看书没啥太大的用处。自己看看InitializeComponent里的方法就知道里面是干啥的了。抱歉,我打错了,是InitializeComponent()。我可不是光看书,我有3年的WPF开发经验,只是最近对WPF自己产生的框架有深究的兴趣。我把此书全部看过一遍,也没看懂,也深入调试过InitializeComponent(),也没看懂,盼您指点指点一二。
3年了你都没有搞懂wpf的启动过程吗?这个Init方法只是自动生成的初始化方法,如果你的窗口都是用设计器或者写xml生成的,那不调用这个,界面上的东西就不会出现。但不意味着所有的控件必须在这个方法中创建,如果你的按钮是通过其他途径创建的,自然和它没关系。
惭愧!3年了没搞懂。但是即使我的窗口都是用XAMlL编写的,界面上的东西还是正常显示,与那本书中所述不一样。我的真正不解之处在于:APP类中的InitializeComponent()和MainWindow类中的InitializeComponent()作用分别是什么APP类中的InitializeComponent()调用URI加载了MainWindow.baml;MainWindow类中的InitializeComponent()也加载了MainWindow.baml;它们的的区别和联系是什么?请大侠指点!