无效的URI:无法确定URI的格式 - C#

时间:2012-03-16 13:30:22

标签: c#

我试图将c#中的资源字典源设置为项目中文件夹的位置,但得到上述错误。

有人可以建议问题是什么吗?

下面是代码:

myResourceDictionary.Source = new Uri("../Resources/Styles/Shared.xaml");

如果您需要更多信息,请与我们联系。

3 个答案:

答案 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;
}