前言

本文主要介紹Wpf讀寫Xaml檔案。

讀寫實現

首先我們使用XamlWriter將Wpf的物件轉換為Xaml字串,程式碼如下:

var btn = sender as Button;
string xamlString = XamlWriter.Save(btn);
tbXaml.Text = xamlString;

XamlWriter的Save函式,會將指定的物件和其屬性序列化 成Xaml字串。

注意:這裡有一個概念,Xaml是物件的序列化後的結果,即,Xaml本質上和Xml是一樣,都是C#的物件的序列化字串。

生成字串後,我們可以把他儲存進Xaml檔案備用,程式碼如下:

File.WriteAllText("test.Xaml", tbXaml.Text);

然後讀取剛剛儲存的Xaml檔案的內容,程式碼如下:

var str = File.ReadAllText("test.Xaml");
tbXamlRead.Text = str;

然後我們使用XamlReader的Parse方法解析這個字串,因為我們知道他是Button型別序列化後的字串,所以我們可以直接強轉為Button型別的物件,然後再將這個物件新增進一個容器中,程式碼如下:

 if(!string.IsNullOrEmpty( tbXamlRead.Text))
{
var btn = XamlReader.Parse(tbXamlRead.Text) as Button;
spCon.Children.Add(btn);
}

除了解析字串這種方式將Xaml轉換為物件,我們也可以採用XamlReader的Load方法,將流直接轉換為Button物件,程式碼如下:

 var stream = File.OpenRead("test.Xaml");
var btn = XamlReader.Load(stream) as Button;
spCon.Children.Add(btn);

測試應用如下圖所示:

----------------------------------------------------------------------------------------------------

到此,Wpf讀寫Xaml檔案就已經介紹完了。

程式碼已經傳到Github上了,歡迎大家下載。

Github地址: https://github.com/kiba518/WpfXamlReadAndWrite/

----------------------------------------------------------------------------------------------------

注:此文章為原創,任何形式的轉載都請聯絡作者獲得授權並註明出處!
若您覺得這篇文章還不錯,請點選下方的【推薦】,非常感謝!

https://www.cnblogs.com/kiba/p/15307295.html