2012-01-06 82 views
0

我試圖從我的webservice下載一個文件'theme.xaml',並將它添加到App.Current.Resources.MergedDictionaries中。我遇到的麻煩是我不知道如何從IsolatedStorage中的文件創建一個ResourceDictionary,在那裏緩存它。從IsolatedStorage中加載ResourceDictionary

我想要做這樣的事情:

 ResourceDictionary rd = new ResourceDictionary(); 
     rd.Source = new (Uri("isostore:/theme.xaml")); 
     App.Current.Resources.MergedDictionaries.Clear(); 
     App.Current.Resources.MergedDictionaries.Add(rd); 

但我得到一個「未指定錯誤」上設置源呼叫。我很確定我不能在Uri中這樣處理islolated存儲。但是,做到這一點的正確方法是什麼?

+0

你可以發佈你正在得到的確切的錯誤信息..?\ – MethodMan 2012-01-06 22:42:44

回答

0

我相信,你的代碼應該是對的 行更多的東西還需要看到的配置XML是什麼樣子太

ResourceDictionary rd = new ResourceDictionary(); 
rd.Source = new Uri("/isostore;/theme.xaml", UriKind.RelativeOrAbsolute); 
App.Current.Resources.MergedDictionaries.Clear(); 
App.Current.Resources.MergedDictionaries.Add(rd); 
+0

我剛剛嘗試過,它不起作用。 Uri爆炸了很多錯誤: 主題 {isostore; /theme-2123418883.xml} AbsolutePath:'theme.AbsolutePath'拋出了一個異常'System.InvalidOperationException' AbsoluteUri:'theme.AbsoluteUri'拋出一個異常類型'System.InvalidOperationException' 等... – John 2012-01-07 00:56:05

0
using (var storage = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    using (var stream = new IsolatedStorageFileStream("theme.xaml", FileMode.Open, storage)) 
    { 
     var xaml = XElement.Load(stream); 
    } 
} 

嘗試,如果你能得到這個工作。 我已經使用這種方法來加載xmlfiles。 認爲你可以使用Application.GetResourceStream而不是XElement.Load()

相關問題