2016-03-09 6 views
7

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

SomeImage.Theme-Light.png 

या छवि डालने की तरह एक क्वालीफायर थीम लाइट

Theme-Light/SomeImage.png 

नामित काम करेगा, और यह किया था, लेकिन केवल डिजाइनर मोड में। जैसे ही मैं ऐप चलाता हूं, भले ही आवश्यक थीम ठीक से सेट हो (दोनों ऐप और पेज स्तर पर, इसलिए अन्य सभी थीम स्रोत सही तरीके से लोड हो जाते हैं), गलत छवि लोड हो जाती है।

मुझे विभिन्न विषयों के लिए अलग-अलग छवियों को लोड करने के लिए कामकाज के बारे में पता है, इसलिए यह नहीं है कि मैं क्या देख रहा हूं। मुझे यह जानकर उत्सुकता है कि क्वालिफायर के साथ यह दृष्टिकोण रनटाइम में क्यों काम नहीं करता है? क्या कोई अलग नाम क्वालीफायर है जिसका उपयोग किया जाना चाहिए?

मैं यह लेख पढ़ें: "How to name resources using qualifiers (XAML)" लेकिन यह केवल दिखाता है कि उच्च विपरीत समर्थन के संबंध में संपत्ति के नाम पर

+0

encounte स्प्लैशस्क्रीन छवि के साथ इसे स्वयं रिंग करें। मैं WP10 पर अंधेरे विषय के लिए एक सफेद आइकन चाहता हूं, थोड़ी देर के लिए सफेद थीम – Quincy

+0

के लिए एक और रंग आइकन "कंट्रास्ट-व्हाइट" और "कंट्रास्ट-ब्लैक" का उपयोग करने का तरीका होना चाहिए, यहां तक ​​कि उदा। ग्रूव संगीत इस दृष्टिकोण का उपयोग करता है। यह मेरे ऐप्स में ठीक काम करता है, स्प्लैश स्क्रीन केवल एक ही अपवाद है। – sibbl

+0

@sibbl आपके सुझाव के लिए धन्यवाद, लेकिन यह तब तक काम नहीं करता जब तक कि उच्च कंट्रास्ट चालू न हो जाए। फ़ाइल नाम (उदाहरण के लिए, स्केल 150): LogoWithName.scale-150_contrast-black.png। क्या आप वाकई काम करने के लिए कुछ और नहीं कर रहे हैं? –

उत्तर

2

इस aproach क्वालिफायर के रूप में के रूप में सुविधाजनक नहीं है, लेकिन यह काम करता है

को परिभाषित करें।। App.xaml में

<ResourceDictionary> 
    <ResourceDictionary.ThemeDictionaries> 
     <ResourceDictionary x:Key="Light"> 
      <ImageSource x:Key="Logo">/Assets/Logo-White.png</ImageSource> 
     </ResourceDictionary> 

     <ResourceDictionary x:Key="Dark"> 
      <ImageSource x:Key="Logo">/Assets/Logo-Blue.png</ImageSource> 
     </ResourceDictionary> 

     <ResourceDictionary x:Key="HighContrast"> 
      <ImageSource x:Key="Logo">/Assets/Logo-White.png</ImageSource> 
     </ResourceDictionary> 
    </ResourceDictionary.ThemeDictionaries> 
</ResourceDictionary> 

तब का उपयोग

<Image Source="{ThemeResource Logo}"/> 
संबंधित मुद्दे