我有一个场景,我在运行时解析资源字典的XAML。如下:
var parsedResourceDictionary = XamlReader.Parse(xaml) as ResourceDictionary;
这一切都发生在自定义资源字典中(从ResourceDictionary派生为基类)。解析后,我打电话给
MergedDictionaries.Add(parsedResourceDictionary);
由于解析XAML需要相当长的时间,我想缓存解析器输出,只需在MergedDictionary字段上调用add方法即可。 现在,我的问题是,是否可以保留对此parsedResourceDictionary的引用并稍后添加。
感谢
答案 0 :(得分:0)
是。阅读一次,将其放在某处的变量中并在将来使用它而不是再次读取它。你试过吗?
答案 1 :(得分:0)
我刚刚创建了一个小型测试应用程序,我从嵌入式XAML创建了一个ResourceDictionary:
public partial class MainWindow : Window
{
public static ResourceDictionary CachedResourceDictionary;
public MainWindow()
{
if (CachedResourceDictionary == null)
{
CachedResourceDictionary = new ResourceDictionary
{
Source =
new Uri("/ResourceDictionaryCache;component/Dictionary1.xaml",
UriKind.RelativeOrAbsolute)
};
}
Resources.MergedDictionaries.Add(CachedResourceDictionary);
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var toOpen = new MainWindow();
toOpen.Show();
}
}
在Button_Click事件中,我刚刚创建了一个MainWindow的新实例,然后