我正在尝试设置我的表单,以便从.txt文件中列出的路径加载BackgroundImage
。
文本文件的内容如下所示:
System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Background.png")
当表单加载时,我运行以下代码:
//LOAD FORM
string BackgroundSkinsPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Skin.cfg");
this.BackgroundImage = Image.FromFile(System.IO.File.ReadAllText(BackgroundSkinsPath));
用户点击与不同背景图片相关的按钮可以更改该文本文件的内容:
//CHANGE BG IMAGE
private void ChangeBGButton_Click(object sender, EventArgs e)
{
string BackgroundSkinsPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Skin.cfg");
System.IO.File.WriteAllText(BackgroundSkinsPath, "System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Background2.png")");
this.BackgroundImage = Image.FromFile(System.IO.File.ReadAllText(BackgroundSkinsPath));
}
我想将背景图像位置写入文件的原因是,下次用户加载应用程序时,它将具有他们选择的背景图像,这是我能想到的唯一方式这样做。
问题是,我写的代码不起作用,我不知道如何解决它。
我希望用户能够从“我的文档”文件夹中的文件夹(通过按钮或类似文件)为应用程序选择背景图像,并让应用程序记住下次启动时他们选择的图像申请。
答案 0 :(得分:1)
您正在cfg文件中编写C#表达式,而不是具有背景图像有效路径的文字字符串。
using System.IO;
private void ChangeBGButton_Click(object sender, EventArgs e)
{
string BackgroundSkinsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Skin.cfg");
string currentBackgroundImage = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Background2.png");
File.WriteAllText(BackgroundSkinsPath, currentBackgroundImage );
this.BackgroundImage = Image.FromFile(File.ReadAllText(currentBackgroundImage));
}
现在在你的LOAD方法中你可以使用
string BackgroundSkinsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Application Name", "Skins", "Skin.cfg");
this.BackgroundImage = Image.FromFile(File.ReadAllText(BackgroundSkinsPath));