2013-01-03 64 views
0

如何使用XML文檔提供的屬性創建Windows窗體?C#加載XML文件

這裏有這樣一個XML文檔:

<Form> 
    <Size> 
    <Width>558</Width> 
    <Height>537</Height> 
    </Size> 
    <Text>XML saving</Text> 
    <Name>Form1</Name> 
    <Button> 
    <Name>button1</Name> 
    <Text>XML button</Text> 
    <Size> 
     <Width>130</Width> 
     <Width>45</Width> 
    </Size> 
    <Location> 
     <X>14</X> 
     <Y>24</Y> 
    </Location> 
    </Button> 
</Form> 

在加載的形式,我需要展示的形式,並與從XML文檔中的值就可以了按鈕。

任何人都可以提供有關此主題的任何幫助或教程嗎?

+3

你寫一個Windows應用程序(的WinForms,WPF)或一個網站(WebForms,MVC)? –

+0

我在寫WinForms應用程序... –

+0

@DragoFlirt在我的回答中有什麼不清楚的地方嗎?隨時提問任何問題 –

回答

4

您可以使用內置功能來保存和恢復表單設置。使用application settings binding

您可以綁定窗體的大小,位置,文本等屬性,並將其控件設置爲自動加載並應用於控件。步驟:

  • 選擇一些控制,並選擇屬性選項卡
  • 查找在數據類(ApplicationSettings)財產
  • 打開屬性綁定編輯
  • 選擇要保存和XML負載和創建新的設置屬性該屬性

如果你真的需要使用XML,那麼你應該看齊手動設置。您可以創建像一些(擴展)的方法(樣品用的LINQ to XML):

public static void ApplySettings(this Button button, XDocument xdoc) 
{ 
    var settings = xdoc 
       .Descendatns("Button") 
       .SingleOrDefault(b => (string)b.Element("Name") == button.Name); 

    if (settings == null) 
     return; 

    button.Text = (string)settings.Element("Text"); 
    var location = settings.Element("Location"); 
    if (location != null) 
    { 
     button.X = (int)location.Element("X"); 
     button.Y = (int)location.Element("Y"); 
    } 

    //etc 
} 

並調用這些方法爲每個控件:

var xdoc = XDocument.Load(settings_file); 
button1.ApplySettings(xdoc); 
// etc 
+0

你可以在你的答案中改變綁定嗎? –

+0

@RyanGates肯定,沒問題:) –