Domanda

Ho un sito c # che fa uso di molte immagini con testo inglese incorporato.

Come posso utilizzare un file di risorse standard per scambiare immagini a seconda della lingua?

Ho un file resx nella mia directory App_GlobalResources, ma non riesco a inserirlo correttamente in un asp: controllo immagine per imageurl.

idee?

AGGIORNAMENTO:

Per ulteriori informazioni, ecco il codice del tag immagine:

<asp:image runat="server" ID="img2" ImageUrl="<%$Resources: Resource, cs_logo %>" />

Il risultato sul lato client è:

<img id="img2" src="System.Drawing.Bitmap" style="border-width:0px;" />

Nota che la fonte ovviamente non è quella che mi aspettavo ...

È stato utile?

Soluzione

è possibile memorizzare l'URL dell'immagine nel file di risorse e utilizzare il seguente codice incorporato nel controllo

<asp:Image ImageUrl="<%$resources:Image1 %>" />

Aggiornamento

questo link potrebbe essere utile per ciò che stai cercando di realizzare

o

puoi anche provare a archiviare la risorsa come stringa e impostare il valore nella posizione dell'URL invece di memorizzare l'immagine nel file di risorse.

Altri suggerimenti

Una cosa che potresti provare a fare è creare un semplice "servizio di immagini" che può servire l'immagine nel formato corretto dalle risorse incorporate.

Non devi creare il servizio web stesso, devi semplicemente creare una pagina aspx e nel codice dietro di te modifichi il Response.ContentType in "quot / image / png". o qualunque sia il formato che preferisci. Ciò richiede anche un parametro get nell'URL della pagina stessa, ma può essere facilmente filtrato. Quindi il metodo Page_Load del tuo servizio di immagine potrebbe essere simile al seguente:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

      Dim FinalBitmap As Bitmap
      Dim strRenderSource As String
      Dim msStream As New MemoryStream()

      strRenderSource = Request.Params("ImageName").ToString()

      ' Write your code here that gets the image from the app resources.
      FinalBitmap = New Bitmap(Me.Resources(strRenderSource))
      FinalBitmap.Save(msStream, ImageFormat.Png)

      Response.Clear()
      Response.ContentType = "image/png"

      msStream.WriteTo(Response.OutputStream)

      If Not IsNothing(FinalBitmap) Then FinalBitmap.Dispose()

End Sub

Quindi di nuovo sulla tua pagina ASPX hai ...

<asp:Image ImageUrl="http://localhost/GetImage.aspx?ImageName=Image1" />

Oh, e non dimenticare di importare System.Drawing e System.Drawing.Imaging nella pagina.

se si utilizza un file di risorse globali è necessario aggiungerlo in questo modo

<img id="WelocmeICon" runat="server"  alt="welcome icon" 
     src="<%$resources:NmcResource,WelcomeIcon %>"  />

e poiché utilizzo il controllo img ho aggiunto runatserver e id per esso

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top