为啥窗口设计器不是生成一个resx静态资源,而是生成了要执行的代码

为什么窗口设计器不是生成一个resx静态资源,而是生成了要执行的代码?
win32时代用VC编程的时候,窗体设计器是用来生成一个res文件当中内容的,这个内容被编译链接到了PE文件当中作为数据的一部分,运行时代码里面创建窗口的时候去用这个资源创建真实的界面。
但是C#程序的窗口设计器是生成了一堆InitializeComponent()函数当中的代码,而没有生成一个静态资源。

我想问:
(1)C#界面编程总是这样的吗,不是在PE文件里面保存一份静态的窗口定义?
(2)可以像VC编程那样生成一个res文件里面保存一个窗口的设计,然后在运行时去根据这些相关的ID来创建窗口的各个子控件?

------解决方案--------------------



InitializeComponent()是把 form1.Designer.cs 里面添加的控件加载到窗体。.Designer.cs你可以理解为html静态代码。
------解决方案--------------------
二进制的属性还是存在resx中的,窗体布局放在代码中更加灵活。

VC++中的对话框资源是操作系统读取和加载的,无法扩充,不能处理自定义控件属性的加载。
------解决方案--------------------
VC++最终编译出来的不也都是二进制代码。不管是资源还是窗体。
VC++不可能那么先进到在十几年前就实现了类似WPF的XAML界面语言。