2010-07-12 13 views
6

Hej¿Qué pasa con este URI?

Estoy tratando de cargar una imagen (incrustada) en una aplicación wpf, usando un Uri pero sigo obteniendo una excepción.

El código es:

new BitmapImage(new Uri("pack://application:,,,,/Icons/m.png")); 

(En caso de que no está claro, yo estoy tratando de cargar el archivo m.png de la carpeta de iconos, que se ha marcado como un ressource incorporado).

y la excepción es

NotSupportetException (the URI prefix is not recognized) 

Puede alguien decirme lo que el URI debería haber sido?

Respuesta

2

Puede echar un vistazo al this blog post. La solución es registrar un analizador uri personalizada para que reconozca el protocolo pack:

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

En caso de que alguien acuda a esta página buscando la respuesta, ¿puede decirnos qué fue lo que en esa publicación ayudó? – Foole

+0

@Foole, esto soluciona el problema: 'UriParser.Register (nuevo GenericUriParser (GenericUriParserOptions.GenericAuthority)," paquete ", -1)'. –

4

tres comas deben estar en lugar de las cuatro de la cadena:

new BitmapImage(new Uri("pack://application:,,,/LibName;component/Icons/m.png")); 

libname - puntos de reunión donde se aloja recursos.

+0

Esto produce una excepción también. –

+0

No lo creo. Si se trata de una aplicación WPF, no debería lanzar una excepción. –

+0

Tiene razón, pero no fue suficiente para solucionar el problema. – tomjen