我需要使用C#将简单的WinForm外观编写为XML代码。例如,我有一个带有两个按钮的表单,列表视图,树视图,组合框,菜单和面板。
稍后,我需要读取该文件,它必须重建完全相同的WinForm。
关于如何解决这个问题的任何想法?我看过一篇关于物质的类似帖子,但它只描述了如何写出值,而不是定位,大小等...
This is anexample, how the data written in xml file should look like
答案 0 :(得分:4)
我会在这里使用LinqToXml .....
XElement root = new XElement("Form");
TraverseAllControls(root, this);
var xml = root.ToString();
void TraverseAllControls(XElement xElem,Control ctrl)
{
foreach (Control c in ctrl.Controls)
{
if (String.IsNullOrEmpty(c.Name)) continue;
var e = new XElement(c.Name,
new XElement("Width",c.Width),
new XElement("Height",c.Height),
new XElement("X",c.Location.X),
new XElement("Y",c.Location.Y));
xElem.Add(e);
TraverseAllControls(e, c);
}
}