WPF中的InitComponet作用

问题描述

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;它们的的区别和联系是什么?请大侠指点!

时间: 2024-10-09 00:59:12

WPF中的InitComponet作用的相关文章

WPF中的Style(风格,样式)

在WPF中我们可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格. Style是作为一种资源被保存下来的. 看下面的例子: <Window.Resources>        <Style TargetType="Button">       <Setter Property="Fore

WPF中MVVM模式原理分析与实践[转]

1, 前提 可以说MVVM是专为WPF打造的模式, 也可以说MVVM仅仅是MVC的一个变种, 但无论如何, 就实践而言, 如果你或你的团队没有使用"Binding"的习惯, 那么研究MVVM就没有多大意义. 另外,个人觉得, 使用Command以及打造一种合理的简化的方式去使用Command也与使用Binding一样重要. 2, 诞生 为了解决现实世界中的问题,我们需要将现实世界中的事物加以抽象, 然后得到了Domain Object, 无论贫血的还是富血的, 我们都可以简单地把他们归

WPF中的动画

动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互.这里我们讨论一下故事板. 在WPF中我们采用Storyboard(故事板)的方式来编写动画,为了对Storyboard有个大概的印象,你可以粘贴以下代码到XamlPad来查看效果: < Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schem

WPF中两条路径渐变的探讨

原文:WPF中两条路径渐变的探讨 我们在WPF中,偶尔也会涉及到两条路径作一些"路径渐变 ".先看看比较简单的情形:如下图(关键点用红色圆点加以标识):(图1) 上面图1中的第1幅图可以说是最简单的路径渐变了,它由两条直线为基础,中间以插值方式作了两条直线间的渐变(插入路径数量为8,加上原始两条直线,最终共得到10条直线). 图1中的第2幅图是将第1幅图中的右边直线从中间折起(我们称之为"拐点"),然后以此两路径(一条直线,一条折线)为基础,同样插入渐变路径条数为8

WPF中的三维空间(1)

原文:WPF中的三维空间(1) WPF中可以创建三维几何图形,支持3D对象的应用,支持从3D Max等软件将3D文件obj导入设计中,但是目前还不支持将材质同时导入,这样需要在WPF中对3D对象重新设置颜色或贴图. 2.10.1 WPF中的三维空间 1.三维空间坐标 WPF中二维图形的坐标系原点定位在呈现区域(屏幕)的左上角,其X 轴上的正方向朝右,Y轴的正向朝下. 在WPF的三维坐标系中,原点一般位于在WPF中创建的三维对象的中心(导入的三维对象的情况就不一定了,比如从3DMax中导入的obj

艾伟:WPF中的Style(风格,样式)

在WPF中我们可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格. Style是作为一种资源被保存下来的. 看下面的例子:  <Window.Resources>       <Style TargetType="Button">      <Setter Property="Foreg

UI前沿技术-WPF中的多点触控操作事件

就在过去几年,多点触控还只是科幻电影中表现未来主义的一种重要手法,现在俨然已经成为主流的用户界面技术.多点触控显示屏现在成了新型智能手机和 Tablet 计算机的标准显示屏.此外,它还可能在公共场所的计算机上普及,例如 Microsoft Surface 率先开发的网亭或桌面计算机. 实际存在的唯一不确定因素是多点触控在常规台式计算机上的普及.这种普及的最大障碍或许是长时间在垂直屏幕上移动手指所产生的疲劳(称为"大猩猩手臂").我个人希望多点触控的强大功能将切实推进桌面显示屏的重新设计

WPF中如何使用行为示例:Canvas控件拖放行为的演示

1.获取行为的支持,安装Expression Blend 4 SDK(http://www.microsoft.com/zh-cn/download/details.aspx?id=10801) . 2.创建行为库 (1)创建一个Class Project,添加WPF必备的以及WPF中支持行为必备的dll文件. 其中,System.Windows.Interactivity.dll组件在目录(需要安装Blend SDKs):C:\Program Files (x86)\Microsoft SDK

WPF 中 ICollectionView 及 ItemsControl 相关的重点

为 OEA 框架 做 WPF 树型表格控件时,浪费了许多时间在一些知识点上,所以写了这篇博客总结一下,和各位博友分享.   ICollectionView 接口的简易使用方法   它的 SortDescriptions.GroupDescription 等属性会影响视图的结构,一般情况下会自动刷新. 也可以直接使用 Refresh 方法来命令视图的刷新(内部实现一般为重建内部视图模型集合). 如果是批量操作,也可以使用 RefreshDefer 方法来抑制多次刷新,待多个更新操作后再统一刷新.