Frage

Wie würde ich ein Bild gesetzt von einem Themenverzeichnis kommen (mein Thema ändert, so will ich nicht direkt referenzieren) Ich bin sicher, dass dies möglich ist, aber jedes Beispiel finde ich, scheint nicht zu funktionieren. Sie sind in der Regel entlang der Linien von:

asp: Bild ID = "Bild1" runat = "server" ImageUrl = "~ / Web / Mode1.jpg" /

, wo Web ein Unterverzeichnis in meinen Themen Ordnern sein würde. Was darauf hindeutet, das Themenverzeichnis würde zur Laufzeit hinzugefügt werden.

War es hilfreich?

Lösung

Wenn Sie wollen, ein Bild in Ihrem Theme Ordner verweisen, dann darauf hindeutet, ich SkinID verwenden. Innerhalb der Skin-Datei jedes Thema Ordner würden Sie so etwas wie dieses

definieren
<asp:Image runat="server" SkinId="HomeImage" ImageUrl="Images/HomeImage.gif" />

Wenn Sie das Bild in Ihrem Code gehen verwenden Sie so etwas tun ...

<asp:Image runat="server" SkinId="HomeImage" />

Je nach Thema Ihrer Anwendung aufgenommen hat, wird es das richtige Bild von den richtigen Themenordnern aufheben.

MyWebSite
  App_Themes
    Theme1
      Default.skin
      Default.css
      Images
         HomeImage.gif
    Theme2
      Default.skin
      Default.css
      Images
         HomeImage.gif

Hier ist ein zu erklären, wie Themen zu verwenden, Skin und einstellen das Thema verschiedene Möglichkeiten.

Andere Tipps

Hat jemand Einblick in diese Frage hat?

Eine andere Möglichkeit ist es, die Basisseite zu verlängern. Ich habe eine Funktion, die den Pfad eines Bildes auf der Grundlage des aktuellen Themas zurückkehren wird.

MyBasePage.vb

Private strThemePath As String = ""
Private strThemedImagePath As String = ""

Public Function ThemedImage(ByVal ImageName As String) As String
    Return Me.strThemedImagePath & ImageName
End Function

Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit  
    Me.strThemePath = "App_Themes/" & Me.Theme & "/"
    Me.strThemedImagePath = Me.strThemePath & "Images/"
End Sub

MyPage.aspx

<img src='<%= Me.ThemedImage("Loading_wait.gif") %>'> 

Nicht sicher, ob ich Ihre Frage richtig verstanden, aber wenn Sie ein Bild in einer Skin-Datei haben, wie die folgenden, wird es standardmäßig aus dem Themenordner kommen:

<asp:Image runat="server" ImageUrl="filename.ext" />

Wenn Sie es aus einem Unterordner Web des Themenordners kommen, einen relativen Pfad verwenden:

<asp:Image runat="server" ImageUrl="Web/filename.ext" />

Ihr Beispiel wird einen Unterordner des Stammverzeichnisses der Anwendung:

<asp:image ID="Image1" runat="server" ImageUrl="~/Web/Mode1.jpg"/> 

Siehe die MSDN-Seite auf Themen und Skin .

Es muss einen einfacheren Weg, sicher sein? Zum Beispiel, wenn ich ein HyperLink-Steuerelement erstellen möchten, und ich möchte ein Bild für sie angeben, aber das Bild ist in einem Thema, wie mache ich das? Ich möchte das Thema für die gesamte App von web.config (zB <page theme="MyTheme">) gesteuert werden, ich möchte nicht ein Thema für jedes Element in meiner Website angeben habe.

edit: Ich habe meine eigene Art Frage beantwortet. Ich schaffe in einer Skin-Datei, diese Steuerung:

<asp:Hyperlink runat="Server" SkinId="HyperlinkOne"
ImageUrl="Images/one.png" Text="One" NavigateUrl="~/PageOne.aspx"/>

Da ist in meinem Code, den ich dies einfach tun:

HyperLink hl = new HyperLink();
hl.SkinID = "HyperlinkOne";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top