Question

J'ai un site c # qui utilise beaucoup d'images avec du texte anglais incorporé.

Comment utiliser un fichier de ressources standard pour échanger des images en fonction de la langue?

J'ai un fichier resx dans mon répertoire App_GlobalResources, mais je n'arrive pas à le brancher correctement dans un contrôle asp: image pour l'image.

Des idées?

UPDATE:

Pour plus d'informations, voici le code de balise d'image:

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

Le résultat côté client est:

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

Notez que la source n'est évidemment pas ce à quoi je m'attendais ...

Était-ce utile?

La solution

vous pouvez stocker l'URL de l'image dans votre fichier de ressources et utiliser le code en ligne suivant dans le contrôle

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

Mettre à jour

ce lien pourrait être utile pour ce que vous essayez d'accomplir

ou

vous pouvez également essayer de stocker la ressource sous forme de chaîne et définir la valeur sur l'emplacement de l'URL au lieu de stocker l'image dans le fichier de ressource.

Autres conseils

Vous pouvez également essayer de créer un "service d’image simple". pouvant servir l'image au format approprié à partir des ressources incorporées.

Il n'est pas nécessaire de créer le service Web lui-même, vous créez simplement une page aspx et dans le code situé derrière, vous modifiez le Response.ContentType en "image / png". ou quel que soit le format que vous préférez. Cela nécessite également un paramètre get dans l'URL de la page elle-même, mais cela peut être facilement filtré. Ainsi, la méthode Page_Load de votre service d'imagerie pourrait ressembler à ceci:

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

Puis, revenez sur votre page ASPX ...

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

Oh, et n'oubliez pas d'importer System.Drawing et System.Drawing.Imaging dans la page.

si vous utilisez un fichier de ressources globales, vous devez l'ajouter comme ceci

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

et parce que j'utilise img control, j'ai ajouté runatserver et son identifiant

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top