资源词典

时间:2014-01-23 07:59:03

标签: c# wpf

我写了一个转换器,它接受一个字符串并返回一个资源字典,就像一个魅力,但如果我想在2个地方使用相同的资源字典,第一个资源字典将从第一个地方消失,我真的不明白为什么。 (此资源字典是放置在Viewbox中的一些矢量图像。)

你们有什么想法吗?

这是我的转换器:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  {
     if (value != null)
     {
        var temp= Application.Current.TryFindResource(value);
        if (temp!= null)
        {
           return temp;
        }
     }
     return null;
  }

1 个答案:

答案 0 :(得分:0)

因为您的资源是Visual,这意味着他们只能拥有一个父级,所以如果您在另一个可视树的位置使用相同的实例,它将从之前的位置删除。解决问题的一种方法是针对您的资源设置x:Shared="false"

  

x:Shared =“false”行为会创建另一个相同的资源实例,而不是返回相同的实例