Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这个URI有什么问题?_C#_Wpf - Fatal编程技术网

C# 这个URI有什么问题?

C# 这个URI有什么问题?,c#,wpf,C#,Wpf,嘿 我试图使用Uri在wpf应用程序中加载一个(嵌入的)映像,但我一直收到一个异常 代码是: new BitmapImage(new Uri("pack://application:,,,,/Icons/m.png")); (如果不清楚,我正在尝试从Icons文件夹加载m.png文件,该文件夹 已标记为嵌入式资源) 例外是 NotSupportetException (the URI prefix is not recognized) 谁能告诉我uri应该是什么吗?字符串中必须有三个逗号,而

我试图使用Uri在wpf应用程序中加载一个(嵌入的)映像,但我一直收到一个异常

代码是:

new BitmapImage(new Uri("pack://application:,,,,/Icons/m.png"));
(如果不清楚,我正在尝试从Icons文件夹加载m.png文件,该文件夹 已标记为嵌入式资源)

例外是

NotSupportetException (the URI prefix is not recognized)

谁能告诉我uri应该是什么吗?

字符串中必须有三个逗号,而不是四个:

new BitmapImage(new Uri("pack://application:,,,/LibName;component/Icons/m.png"));
LibName-指向资源所在的程序集。

您可以查看。解决方案是注册自定义uri解析器,以便它识别
pack
协议:

UriParser.Register(
    new GenericUriParser(GenericUriParserOptions.GenericAuthority), "pack", -1
);

这也引发了一个例外,我不这么认为。如果这是一个WPF应用程序,那么它不应该抛出异常。你是对的,它不应该,但我不是从WPF类调用它。如果有人来到这个页面寻找答案,你能告诉我们在那篇文章中有什么帮助吗?@傻瓜,这解决了问题:
UriParser.Register(新的GenericUriParser(GenericUriParserOptions.GenericAuthority)、“pack”、-1)