2008-10-14 21 views
13

Ben görünmüyor bulmak her örnek iş.ASP.NET Tema Görüntüler

asp: Bunlar çizgisinde genellikle görüntü ID = "Image1" runat = "server" ImageUrl = "~/Web/Mode1.jpg"/

Web bir alt dizin nerede olacağını benim Temalar klasörü. Tema dizinini önermek çalışma zamanında eklenir. Birazdan sorunuzu anladım eğer

cevap

19

sonra ben SkinID kullanarak düşündüren, senin Tema klasöründe Görüntü başvurmak isteyen vardır. Eğer böyle bir şey yapmak Kodunuzdaki resim kullanmak gittiğinizde her Tema Klasörünün cilt dosya içerisinde

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

temaya bağlı ... Bu

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

gibi bir şey tanımlarsınız Uygulamanız doğru tema klasöründen doğru görüntü alacağını seçti. İşte

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

temalar, derileri kullanmak ve tema birçok farklı yöntem nasıl ayarlanacağını açıklayan bir good article olduğunu.

0

emin değil, ancak bir cilt dosyasında bir resim varsa, Aşağıdaki gibi, bu tema klasöründen varsayılan olarak gelecektir:

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

bunu isterseniz

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

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

Sizin örnek uygulama kök dizininin bir alt klasör belirtir: tema klasörün alt klasörü Web'den gelip, göreli bir yol kullanabilir

Bkz. the MSDN page on themes and skins.

2

başkasının bu soruya fikir var mı?

Diğer bir seçenek tabanı sayfasını uzatmaktır. Mevcut temayı temel alarak bir görüntünün yolunu döndürecek bir işlev ekledim.

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") %>'> 
0

mutlaka daha kolay bir yolu olmalı? Örneğin, bir HyperLink denetimi oluşturmak istiyorsam ve bunun için bir resim belirtmek istiyorsam, ancak bu görüntü bir temadaysa nasıl yapabilirim? Tüm uygulamanın temasının web.config'den kontrol edilmesini istiyorum (örn. <page theme="MyTheme">), sitemdeki her öğe için bir tema belirtmek istemiyorum.

düzenleme: I tür kendi soru cevap var.Bir cilt dosyasında oluşturmak, bu kontrol:

HyperLink hl = new HyperLink(); 
hl.SkinID = "HyperlinkOne"; 
:

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

Sonra benim kodda ben sadece bunu