程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 在後台代碼中引入XAML的方法

在後台代碼中引入XAML的方法

編輯:關於.NET

本文將介紹三種方法用於在後台代碼中動態加載XAML,其中有兩種方法是加載已存在的XAML文件,一種方法是將包含XAML代碼的字符串轉換為WPF的對象。

這些是我在編寫RegeX時獲得的經驗,它們將會給WPF程序帶來更多的靈活性。

一、在資源字典中載入項目內嵌資源中的XAML文件

Application.Current.Resources.MergedDictionaries.Insert(0, Application.LoadComponent(new Uri("abc/Index.xaml", UriKind.Relative)) as ResourceDictionary);

此方法僅限於載入項目中包含的XAML資源文件,測試中載入項目以外的資源會提示找不到文件。

二、在資源字典中載入外部XAML文件

Application.Current.Resources.MergedDictionaries.Insert(0, XamlReader.Load(new FileStream("C:\\index.xaml", FileMode.Open)) as ResourceDictionary);

此方法適用於載入項目以外的XAML資源文件。

三、將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對象技術可為程序提供更為靈活的對象生成方式,這在一些復雜的情況下尤為實用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved