我试图将c#中的资源字典源设置为项目中文件夹的位置,但得到上述错误。
有人可以建议问题是什么吗?
下面是代码:
myResourceDictionary.Source = new Uri("../Resources/Styles/Shared.xaml");
如果您需要更多信息,请与我们联系。
答案 0 :(得分:8)
您必须使用UriKind.Relative
myResourceDictionary.Source = new Uri("../Resources/Styles/Shared.xaml", UriKind.Relative);
答案 1 :(得分:1)
即使在传递UriKind.Relative
参数后,我仍然遇到同样的问题。奇怪的是,一些Uris到XAML页面正在使用@Magnus建议的方法 - 但是大多数都会抛出:
The format of the URI could not be determined
异常。
最后,我在 Pack Uris 上阅读了WPF应用程序,这些应用程序100%解决了我的问题。
我开始使用这样的网址:
// ResourceFile is in the Root of the Application
myResourceDictionary.Source =
new Uri("pack://application:,,,/ResourceFile.xaml", UriKind.RelativeOrAbsolute);
或
// ResourceFile is in the Subfolder of the Application
myResourceDictionary.Source =
new Uri("pack://application:,,,/SubFolder/ResourceFile.xaml", UriKind.RelativeOrAbsolute);
希望这可以帮助那些正在面对同样问题的人。
答案 2 :(得分:0)
我试图将窗口的背景设置为ImageBrush。
将UriKind.Absolute更改为UriKind.Relative为我解决了此问题。
private void SetBackgroundImage()
{
ImageBrush myBrush = new ImageBrush
{
ImageSource =
new BitmapImage(new Uri("background.jpg", UriKind.Relative))
};
this.Background = myBrush;
}