gpt4 book ai didi

c# 使用 xml 文件更改按钮和文本框颜色

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

伙计们,首先我想就我的英语向你们道歉。我不太擅长这个。我想将按钮和文本框文本颜色和背景颜色更改为使用 xml。我有这样的 xml 文件。它应该在程序启动时工作。我希望我能表达自己。

<?xml version=”1.0” encoding=”UTF−8”?> 
<components>
<textbox type=” first ”>
<textcolor>BLACK</ textcolor>
<bgcolor>WHITE</bgcolor>
</textbox>
<textbox type=” second ”>
<textcolor>RED</ textcolor>
<bgcolor>WHITE</bgcolor>
</textbox>
<button>
<textcolor>BLUE</ textcolor>
<bgcolor>YELLOW</bgcolor>
</button>
</components>

最佳答案

您可以使用 LINQ-to-XML , 这样您就可以执行 var doc = XDocument.Load("yourfilepath")

例如,如果您的应用程序是在 Windows 窗体中,您可以使用它

        var doc = XDocument.Load("settings.xml");
var textboxes = doc.Descendants("textbox");

foreach(var textbox in textboxes)
{
// here you can set as attribute the id of the textbox, i assumed this is it
var attribute = textbox.Attribute("type");
if (attribute == null) throw new Exception("Invalid xml file");

var id = attribute.Value;
if (!Controls.ContainsKey(id)) throw new Exception("Invalid xml file");

var colorNode = textbox.Descendants("textcolor").FirstOrDefault();
if (colorNode == null) throw new Exception("Invalid xml file");

var backgroundColorNode = textbox.Descendants("bgcolor").FirstOrDefault();
if (backgroundColorNode == null) throw new Exception("Invalid xml file");

Controls[id].ForeColor = ColorTranslator.FromHtml(colorNode.Value);
Controls[id].BackColor = ColorTranslator.FromHtml(backgroundColorNode.Value);
}

var button = doc.Descendants("button").FirstOrDefault();
if (button == null) throw new Exception("Invalid xml file");

var colorButton = button.Descendants("textcolor").FirstOrDefault();
var backgroundColorButton = button.Descendants("bgcolor").FirstOrDefault();
//button1 is the id of the button
Controls["button1"].ForeColor = ColorTranslator.FromHtml(colorButton.Value);
Controls["button1"].BackColor = ColorTranslator.FromHtml(backgroundColorButton.Value);

您必须添加其他验证,例如如果不使用默认颜色替换颜色名称或抛出异常,则颜色名称必须有效。我还建议使用十六进制格式的颜色以确保可靠性

关于c# 使用 xml 文件更改按钮和文本框颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37102032/

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