gpt4 book ai didi

c# - InitializeComponent() 有什么作用,它在 WPF 中是如何工作的?

转载 作者:IT王子 更新时间:2023-10-29 03:31:22 26 4
gpt4 key购买 nike

InitializeComponent() 有什么作用,它在 WPF 中是如何工作的?

一般来说,首先,但我特别想知道构造顺序的血淋淋的细节,以及当有附加属性时会发生什么。

最佳答案

InitializeComponent()的调用(通常至少在WindowUserControl的默认构造函数中调用)实际上是一个方法调用控件的部分类(而不是像我最初预期的那样调用对象层次结构)。

此方法为正在加载的 Window/UserControl 定位 XAML 的 URI,并将其传递给 System.Windows.Application.LoadComponent( ) 静态方法。 LoadComponent() 加载位于传入 URI 的 XAML 文件,并将其转换为由 XAML 文件的根元素指定的对象的实例。

更详细地说,LoadComponent 创建了一个 XamlParser 实例,并构建了一个 XAML 树。每个节点都由 XamlParser.ProcessXamlNode() 解析。这将传递给 BamlRecordWriter 类。一段时间后,我对如何将 BAML 转换为对象有点迷茫,但这可能足以帮助您走上启蒙之路。

注意:有趣的是,InitializeComponentSystem.Windows.Markup.IComponentConnector接口(interface)上的一个方法,其中Window/UserControl 在部分生成的类中实现。

希望这对您有所帮助!

关于c# - InitializeComponent() 有什么作用,它在 WPF 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/245825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com