如何在Property.Settings.Default
?
我应该使用什么数据类型?
答案 0 :(得分:2)
正如我之前已经评论过的那样:使用资源更好。 以下是使用嵌入式资源的指南:
转到“资源”选项卡而不是“设置”选项卡,然后从中添加图像。如果您还没有创建默认资源文件,请单击该链接,将为您创建一个。
选择“图像”作为类型
资源(来自上面的下拉列表)然后添加现有资源(来自相邻的下拉列表)。
您可以访问该资源
使用以下代码从您的程序中获取(静态类Properties.Resource
):
Bitmap image = Properties.Resources.MyJPGImage;
您还可以通过其他程序集的反射来访问资源。尝试在Microsoft 处查看完整示例(包括图像)
答案 1 :(得分:0)
试试这个
var base64 = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
yourImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
base64 = Convert.ToBase64String(ms.ToArray());
}
从设置文件创建字符串变量,例如。 MyImage
Properties.Settings.Default.MyImage = base64;
Properties.Settings.Default.Save();
编辑:
pictureBox1.Image = GetImage(Properties.Settings.Default.MyImage);
public Image GetImage(string value)
{
byte[] bytes = Convert.FromBase64String(value);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return image;
}
答案 2 :(得分:0)
默认情况下,您无法执行此操作(编辑器不允许您选择byte[]
作为数据类型)。您可以从设置文件编辑XML以包含字节数组。您可以在最后再次序列化和反序列化。
如果要在设置文件中设置默认值,则需要提供base64编码的字符串。
这将是设置文件中设置所需的格式:
<Setting Name="Setting" Type="System.Byte[]" mimetype="application/x-microsoft.net.object.bytearray.base64" Scope="User">
<Value Profile="(Default)">
iVBOR...
</Value>
</Setting>
如果您真的需要,请仅使用此选项。如果可能,只需在设置中保存文件的路径,并将文件外部保存在除设置之外的数据文件夹中。