Pregunta

Tengo un sitio C # que utiliza muchas imágenes con texto en inglés incrustado.

¿Cómo puedo usar un archivo de recursos estándar para intercambiar imágenes dependiendo del idioma?

Tengo un archivo resx en mi directorio App_GlobalResources, pero parece que no puedo conectarlo a un asp: control de imagen para imageurl correctamente.

Ideas?

ACTUALIZACIÓN:

Para obtener más información, aquí está el código de etiqueta de la imagen:

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

El resultado en el lado del cliente es:

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

Tenga en cuenta que la fuente, obviamente, no es lo que esperaba ...

¿Fue útil?

Solución

puede almacenar la url de la imagen en su archivo de recursos y usar el siguiente código en línea en el control

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

Actualizar

este enlace podría ser útil en lo que está tratando de lograr

o

También puede intentar almacenar el recurso como una cadena y establecer el valor en la ubicación de URL en lugar de almacenar la imagen en el archivo de reserva.

Otros consejos

Una cosa que puede intentar hacer es crear un simple "servicio de imagen". que puede mostrar la imagen en el formato adecuado de los recursos incrustados.

No tiene que crear un servicio web en sí mismo, simplemente cree una página aspx y, en el código que se encuentra detrás, cambie el Response.ContentType para que sea " image / png " o el formato que prefieras. Esto también requiere un parámetro get en la URL de la página en sí, pero que se puede filtrar fácilmente. Por lo tanto, el método Page_Load de su servicio de imágenes podría verse así:

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

Luego de vuelta en su página ASPX tiene ...

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

Ah, y no olvides importar System.Drawing y System.Drawing.Imaging en la página.

si está utilizando un archivo de recursos globales, debe agregarlo así

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

y porque uso el control img agregué runatserver e id para ello

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top