【问题标题】:WPF exception adding new Resource DictionaryWPF 异常添加新的资源字典
【发布时间】:2017-04-28 11:53:12
【问题描述】:

我需要在WPF 窗口中添加一些ResourceDictionary

如果我按照以下操作,一切正常:

        var uri = $@"..\..\..\Assets\Styles";

        if (Directory.Exists(uri))
        {
            var allFile = Directory.GetFiles(uri);

            if (allFile == null) return;

            foreach (var file in allFile)
            {
                backupManagementWindow.MergeResourceDictionary(new Uri(file, UriKind.RelativeOrAbsolute));
            }
        }

由于我不想根据我的可执行目录定义Uri,所以我定义如下:

var uri = AppDomain.CurrentDomain.BaseDirectory + @"Assets\Styles";

Uri 是正确的(有文件),但是代码引发了异常。

    public void MergeResourceDictionary(Uri uriResource)
    {
        var newResource = new ResourceDictionary {Source = uriResource};
        Resources.MergedDictionaries.Add(newResource);
    }

有人知道为什么吗?谢谢!

【问题讨论】:

  • 了解您遇到什么异常会很有用

标签: wpf uri resourcedictionary


【解决方案1】:

您可以在使用资源字典时使用Pack Uri Scheme

你的 uri 看起来像这样:

以下示例显示了 XAML 资源文件的包 URI,该文件位于被引用程序集的项目文件夹的子文件夹中。

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多