本文将介紹三種方法用于在背景代碼中動态加載XAML,其中有兩種方法是加載已存在的XAML檔案,一種方法是将包含XAML代碼的字元串轉換為WPF的對象。
Application.Current.Resources.MergedDictionaries.Insert(0, Application.LoadComponent(new Uri("abc/Index.xaml", UriKind.Relative)) as ResourceDictionary);
此方法僅限于載入項目中包含的XAML資源檔案,測試中載入項目以外的資源會提示找不到檔案。
Application.Current.Resources.MergedDictionaries.Insert(0, XamlReader.Load(new FileStream("C:\\index.xaml", FileMode.Open)) as ResourceDictionary);
此方法适用于載入項目以外的XAML資源檔案。
XamlReader.Parse(@"<FlowDocument xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""><Paragraph><Run>Hi!</Run></Paragraph></FlowDocument>") as FlowDocument
此方法将生成一個流文檔對象,在RegeX中我就是通過這種方法來靈活的控制流文檔内容,以生成處理結果。
需注意的是,此方法需要.Net 3.5 SP1支援,此前好像是使用的Load方法的重載。
動态加載XAML檔案技術非常适合用于資源載入,以此來實作語言切換、主題變換等功能。
動态轉換XAML字元串為WPF對象技術可為程式提供更為靈活的對象生成方式,這在一些複雜的情況下尤為實用。
本文轉自斯克迪亞部落格園部落格,原文連結:http://www.cnblogs.com/SkyD/archive/2008/09/30/1302348.html,如需轉載請自行聯系原作者