我正在尝试从我的解决方案中加载一个图像,该图像被嵌入为jpg,但它说它没有找到。 我正在声明这两个图像
Image selectedImage = null;
Image emptyImage = null;
selectedImage = Image.FromStream(System.Reflection.Assembly.
GetExecutingAssembly().GetManifestResourceStream(@"selected.png"));
emptyImage = Image.FromStream(System.Reflection.Assembly
.GetExecutingAssembly().GetManifestResourceStream(@"empty.png"));
我需要自定义绘制一个复选框,以便保留样式 您可以看到图像包含在我的解决方案中
然后我使用此自定义功能将复选框图像绘制到约会上
private void dxsourceNetAppointments_CustomDrawAppointment(object sender, CustomDrawObjectEventArgs e)
{
VerticalAppointmentViewInfo apptViewInfo = e.ObjectInfo as VerticalAppointmentViewInfo;
if (apptViewInfo != null)
{
Rectangle imageBounds = GetImageBoundsFromViewInfo(apptViewInfo);
e.DrawDefault();
bool isCustomSelected = (bool)apptViewInfo.Appointment.CustomFields["CheckedIn"];
e.Graphics.DrawImage(isCustomSelected ? selectedImage : emptyImage, imageBounds);
e.Handled = true;
}
}
}
为什么我的图片可能为null的任何原因我认为你不必提供完整的路径,除非它在磁盘上?。
修改2
我尝试了一个资源文件,但由于某种原因它也说空了
selectedImage = WindowsFormsApplication1.SchedurlesImages.selected;
emptyImage = WindowsFormsApplication1.SchedurlesImages.empty;
答案 0 :(得分:0)
致电GetManifestResourceStream
时,您需要使用您的程序集名称对其进行限定,例如:
emptyImage = Image.FromStream(System.Reflection.Assembly
.GetExecutingAssembly()
.GetManifestResourceStream(@"SMBAScheduler.empty.png"));
我可以建议使用基于RESX的资源文件,而不是使用嵌入式资源吗?它将代码生成一个包装器,您可以直接使用静态属性。