WPF异常添加新的资源字典
WPF exception adding new Resource Dictionary
我需要添加一些 ResourceDictionary
到 WPF
window。
如果我这样做,一切正常:
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);
}
有谁知道为什么?谢谢!
您可以在使用资源字典时使用 Pack Uri Scheme。
你的 uri 看起来像这样:
The following example shows the pack URI for a XAML resource file that is located in a subfolder of the referenced assembly's project folder.
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
我需要添加一些 ResourceDictionary
到 WPF
window。
如果我这样做,一切正常:
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);
}
有谁知道为什么?谢谢!
您可以在使用资源字典时使用 Pack Uri Scheme。
你的 uri 看起来像这样:
The following example shows the pack URI for a XAML resource file that is located in a subfolder of the referenced assembly's project folder.
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml