C#GUI DLL自定义用户控件浪费磁盘空间

C#GUI DLL自定义用户控件浪费磁盘空间,c#,winforms,user-controls,custom-controls,diskspace,C#,Winforms,User Controls,Custom Controls,Diskspace,我创建了一个包含一些用户控件的GUI DLL。 其中一个用户控件是一个自定义按钮,它使用存储在Resources.resx文件中的一些图像。用户可以设置按钮的颜色,我加载相关图像 if(SelectedColor == GREEN) this.BackgroundImage = Properties.Resources.greenButtonImage; else if(SelectedColor == RED) this.BackgroundImage = Properties.Res

我创建了一个包含一些用户控件的GUI DLL。 其中一个用户控件是一个自定义按钮,它使用存储在Resources.resx文件中的一些图像。用户可以设置按钮的颜色,我加载相关图像

if(SelectedColor == GREEN)
  this.BackgroundImage = Properties.Resources.greenButtonImage;
else if(SelectedColor == RED)
  this.BackgroundImage = Properties.Resources.redButtonImage;
else
  ..
如果在表单项目中使用GUI DLL,则生成的exe的初始大小为7KB
如果我添加PressButtonControl,FormProject的exe大小为443KB,
如果添加另一个按钮Control,则大小为889KB,
+另按按钮控制1334KB,
+另一个按钮控制大小为1780 KB

所有控件中使用的映像都是相同的,为什么磁盘空间在增加?

谢谢你

这是一个WPF问题吗,UWP,WinForms?似乎很清楚你在UC中有大约445k的图像。它们是否相同并不重要,它们是控件的一部分。@GlenThomas是WinForms应用程序。@Protoix如果我使用10个蓝色按钮控件,所有按钮的图像都是相同的,我不想浪费4500KB,有一种方法吗?这是设计的。您需要替换BackgroundImage属性并为其指定[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]属性,以便图像不会序列化到表单的.resx文件中。