Я пытаюсь использовать XamlWriter для сброса всех объединенных словарей ресурсов в приложении в строку (позже записанную в файл).Однако приведенный ниже код создает исключение для одного словаря ресурсов, а затем просто сбрасывает пустые словари для остальных:
StringBuilder sb = new StringBuilder(); int counter = 0; foreach(var dic in Application.Current.Resources.MergedDictionaries) { counter++; sb.AppendLine("Resource Dictionary #" + counter); try { sb.AppendLine(System.Windows.Markup.XamlWriter.Save(dic)); } catch(Exception ex) { sb.AppendLine(ex.Message); } sb.AppendLine("----"); }
Вывод:
Resource Dictionary #1 Initialization of 'System.Windows.Controls.AdornedElementPlaceholder' threw an exception. ---- Resource Dictionary #2 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #3 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #4 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #5 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #6 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #7 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #8 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #9 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #10 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ---- Resource Dictionary #11 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> ----
Любые идеи о том, почему яполучаю пустые теги ResourceDictionary здесь?