Come si costruisce un URI di pacchetto in un'immagine che si trova in un file di risorse?URI di pacchetto per l'immagine incorporata in un file resx
ho un'assemblea chiamata MyAssembly.Resources.dll
, ha una cartella chiamata Immagini, poi c'è un file di risorse chiamato Assets.resx. Questo file di risorse contiene la mia immagine (denominata MyImage.png). La riga di codice che ho è:
uri = new Uri("pack://application:,,,/MyAssembly.Resources,Culture=neutral,PublicKeyToken=null;component/Images/Assets/MyImage.png");
Tuttavia quando provo a fornire questo URI al costruttore di un nuovo BitmapImage ricevo un IOException con il messaggio
non può individuare risorse 'immagini/attività /myimage.png'.
Nota che ho altre immagini sciolti nella stessa assemblea che posso recuperare bene si utilizza un gruppo URI, quelle immagini hanno la loro azione di costruzione impostata su Resource ma non sono incorporato in un file resx. Dovrei includere il nome del file resx nel percorso?
(Sto cercando di incorporare immagini in file resx in modo da poter sfruttare le impostazioni della cultura dell'interfaccia utente per recuperare l'immagine giusta (l'immagine contiene testo)).
Cosa ti fa pensare che sia possibile utilizzando 'pacchetto:' schema? Questo è legato alle specifiche di Open Packaging Conventions normalizzate. Quindi l'uri punta alle risorse del pacchetto dell'applicazione, non alle risorse incorporate .NET. Potrebbe essere possibile con un altro schema/protocollo (si potrebbe reindirizzare questo protocollo personalizzato alle risorse incorporate, qualcosa come 'new Uri (" resx: // blabla ")'). –
@SimonMourier Stavo pensando che ci deve essere un modo per farlo perché è possibile collegarsi a stringhe in file resx da XAML, quindi sarebbe improbabile che non ci sarebbe un modo per raggiungere altri tipi di risorse incorporati nello stesso file, e un URI è un modo di descrivere un percorso verso una risorsa. Se hai un suggerimento riguardo l'utilizzo di un protocollo personalizzato, sarei felice di sentirlo. Le immagini sciolte (non testuali) sono tutte referenziate usando un URI di pacchetto quindi volevo mantenere la coerenza se possibile. – slugster