2008-10-14 18 views
13

मैं विषय निर्देशिका से आने के लिए एक छवि कैसे सेट करूं (मेरी थीम में परिवर्तन इसलिए मैं सीधे संदर्भ नहीं देना चाहता) मुझे यकीन है कि यह संभव है लेकिन मुझे लगता है कि हर उदाहरण में ऐसा प्रतीत नहीं होता है काम।एएसपी.नेट थीम छवियाँ

एएसपी:: वे की तर्ज पर आम तौर पर कर रहे हैं छवि आईडी = "Image1" runat = "सर्वर" imageUrl = "~/वेब/Mode1.jpg"/

जहां वेब में एक उप निर्देशिका होगा मेरी विषयों फ़ोल्डर। थीम निर्देशिका का सुझाव रनटाइम पर जोड़ा जाएगा।

उत्तर

19

यदि आप अपने थीम फ़ोल्डर में किसी छवि का संदर्भ देना चाहते हैं, तो मैं एक स्किनआईड का उपयोग करने का सुझाव देता हूं। प्रत्येक विषय फ़ोल्डर की त्वचा फ़ाइल के अंदर आप इस

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

की तरह कुछ परिभाषित करेंगे जब आप अपने कोड में छवि का उपयोग करने आप कुछ इस तरह कर जाना ...

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

विषय पर निर्भर करता है आपके एप्लिकेशन ने चुना है यह सही थीम फ़ोल्डर से सही छवि उठाएगा।

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

यहाँ एक good article कैसे विषयों, खाल का उपयोग करने के लिए, और विषय कई अलग अलग तरीकों सेट करने के लिए समझा है।

0

सुनिश्चित नहीं हैं कि अगर मैं अपने प्रश्न सही समझ में आया, लेकिन यदि आप एक त्वचा फ़ाइल में एक छवि है, जैसे कि निम्न, यह विषय फ़ोल्डर से डिफ़ॉल्ट रूप से आ जाएगा:

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

आप यह चाहते हैं

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

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

आपका उदाहरण आवेदन रूट निर्देशिका का एक सबफ़ोल्डर निर्दिष्ट करता है: विषय फ़ोल्डर का एक सबफ़ोल्डर वेब से आने के लिए, एक रिश्तेदार पथ का उपयोग

the MSDN page on themes and skins देखें।

2

क्या किसी और को इस प्रश्न में अंतर्दृष्टि है?

एक और विकल्प बेस पेज का विस्तार करना है। मैंने एक फ़ंक्शन जोड़ा जो वर्तमान थीम के आधार पर एक छवि का मार्ग वापस कर देगा।

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

निश्चित रूप से एक आसान तरीका होना चाहिए? उदाहरण के लिए, यदि मैं हाइपरलिंक नियंत्रण बनाना चाहता हूं, और मैं इसके लिए एक छवि निर्दिष्ट करना चाहता हूं, लेकिन वह छवि थीम में है, तो मैं इसे कैसे कर सकता हूं? मैं पूरे ऐप के लिए web.config (जैसे <page theme="MyTheme">) से नियंत्रित होना चाहता हूं, मैं अपनी साइट में प्रत्येक आइटम के लिए थीम निर्दिष्ट नहीं करना चाहता हूं।

संपादित करें: मैंने अपने स्वयं के प्रश्न का उत्तर दिया है।मैं एक त्वचा फ़ाइल में बनाते हैं, तो इस पर नियंत्रण:

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

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

तब मेरे कोड में मैं बस यह करने के

संबंधित मुद्दे