我一直在寻找一个更好的答案,即使解决了(不是很优雅),我也想知道是否还有其他方法。我继承了一个项目,我不能对其进行过多修改,我的意思是,我只能添加一些其他属性或重写方法,而不能更改基类或接口。
该项目包含一个类,该类继承WPF网格以修改行为的某些方面。我必须用图像添加一个新列(通过代码)。每个图像都已存储到Resource程序集中,并通过静态属性声明,例如,我需要的图标声明如下:
MyIcon.Source="{x:Static images:Common.Size_22.icon}"
我需要在此列中使用此图标,并且尝试通过包进行各种声明,但该声明不起作用。最后,我决定嵌入此位图,并通过一个属性发送它:
<mygrid:MyGridControl Model="{Binding}" Refresh="{Binding Refresh}" 
CommentsImageSource="{x:Static images:Common.Size_22.icon}" />
创建图像单元时,还必须创建一个图像对象并使用Bitmap和BitmapImage之间的转换来设置源
image.Source = ToBitmapSource((System.Drawing.Bitmap)CommentsImageSource);
它可以工作,但是我对这个决议感到非常失望,有没有更好的方法呢?我无法引用源文件以避免通过属性发送位图。
小智 5
当你有分配的ImageSource的代码的机会,我用BitmapToBitmapSource(Resources.image_name)用
public static BitmapSource BitmapToBitmapSource(Bitmap bitmap)
{
  return Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
这将创建一个BitmapSource,然后可以将其分配为控件的ImageSource。
| 归档时间: | 
 | 
| 查看次数: | 1815 次 | 
| 最近记录: |