C# 从xml文件加载控件

C# 从xml文件加载控件,c#,winforms,linq,controls,linq-to-xml,C#,Winforms,Linq,Controls,Linq To Xml,我知道如何写入xml文件,但是我在做我需要做的事情时遇到了困难,并且找不到关于这类问题的足够信息 下面是一个xml文件: <?xml version="1.0" encoding="utf-8"?> <controls> <Label Content="Double-click to edit." Location="258, 178" Size="101, 13" ForeColor="-1" /> <LinkLabel Conte

我知道如何写入xml文件,但是我在做我需要做的事情时遇到了困难,并且找不到关于这类问题的足够信息

下面是一个xml文件:

<?xml version="1.0" encoding="utf-8"?>
<controls>
    <Label Content="Double-click to edit." Location="258, 178" Size="101, 13" ForeColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="532, 133" Size="101, 13" LinkColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="424, 212" Size="101, 13" LinkColor="-1" /> 
    <Label Content="Double-click to edit." Location="282, 89" Size="101, 13" ForeColor="-1" />  
    <Label Content="Double-click to edit." Location="528, 178" Size="101, 13" ForeColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="528, 133" Size="101, 13" LinkColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="528, 149" Size="101, 13" LinkColor="-1" /> 
    <Label Content="Double-click to edit." Location="528, 164" Size="101, 13" ForeColor="-1" />
</controls>
有人能帮我解决这个问题吗?如果有任何帮助,我将不胜感激

多谢各位


Bael

如果您试图在XML中迭代所有控件并检索信息,则应使用

以下是一个例子:

XPathDocument Doc = new XPathDocument("yourfile.xml");
XPathNavigator navigator = Doc.CreateNavigator();
XPathNodeIterator iterator = navigator.Select("/controls/*");
while (iterator.MoveNext())
{
    System.Diagnostics.Debug.Print(iterator.Current.Content);
    System.Diagnostics.Debug.Print(iterator.Current.Location);
}
使用LINQ: (用于前景色/链接颜色检查是否为空)


我正在尝试读取xml文件,然后获取xml文件中的每个“控件”,重新创建该控件,并将其放置在表单的面板控件中,其中包含与xml文件中该控件相关联的属性。谢谢您,编写得非常好。如何获得控件的名称?e、 g.标签还是链接标签?
XPathDocument Doc = new XPathDocument("yourfile.xml");
XPathNavigator navigator = Doc.CreateNavigator();
XPathNodeIterator iterator = navigator.Select("/controls/*");
while (iterator.MoveNext())
{
    System.Diagnostics.Debug.Print(iterator.Current.Content);
    System.Diagnostics.Debug.Print(iterator.Current.Location);
}
XDocument loaded = XDocument.Load(@"C:\XMLFile1.xml");

            var q = from c in loaded.Descendants().Descendants()
                            select new
                            {
                                content = c.Attribute("Content"),
                                location = c.Attribute("Location"),
                                size = c.Attribute("Size"),
                                foreColor = c.Attribute("ForeColor"),
                                linkColor = c.Attribute("LinkColor")
                            };

            foreach (var controlItem in q)
                Console.WriteLine("Control content = {0}", controlItem.content);