gpt4 book ai didi

c# - 从资源以编程方式设置 WPF 图像

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:47 25 4
gpt4 key购买 nike

我一直在为我的问题寻找更好的答案,即使我解决了它(不是很优雅),我也想知道是否还有其他方法。我继承了一个项目,我不能修改太多,我的意思是,我只能添加一些其他属性或重写方法,但不能更改基类或接口(interface)。

该项目包含一个继承 WPF 网格以修改行为的某些方面的类。我必须添加一个带有图像的新列(按代码)。每个单独的图像都已经存储到资源程序集中并通过静态属性声明,例如,我需要的图标是这样声明的:

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);

它有效,但我对这个解决方案感到非常失望,有没有更好的方法来做到这一点?我无法引用源文件以避免按属性发送位图。

最佳答案

当您有机会在代码中分配 ImageSource 时,我使用 BitmapToBitmapSource(Resources.image_name)

public static BitmapSource BitmapToBitmapSource(Bitmap bitmap)
{
return Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}

这将创建一个 BitmapSource,然后您可以将其指定为控件的 ImageSource。

关于c# - 从资源以编程方式设置 WPF 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621937/

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