2016-03-09 14 views
7

Açık/Koyu temalı resimler kullanmak için çok basit bir gereksinime sahibim. ama sadece tasarımcı modunda, ben Tema-LightKoyu/Açık tema öğeleri niteleyiciler

Theme-Light/SomeImage.png 

adında bir klasör altında

SomeImage.Theme-Light.png 

veya resmi koyarak gibi bir eleme çalışması bekleniyordu ve öyle de oldu. Uygulamayı çalıştırdığım anda, gerekli tema düzgün bir şekilde ayarlanmış olsa da (diğer uygulama kaynakları doğru şekilde yüklendiğinden, hem uygulama hem de sayfa düzeyinde), yanlış görüntü yüklenir.

Farklı temalar için farklı resimler yüklemek için geçici çözümler biliyorum, bu yüzden aradığım şey değil. Hakemler ile bu yaklaşımın çalışma zamanında neden çalışmadığını bilmek merak ediyorum. Kullanılması gereken farklı bir isim niteleyici var mı?

Bu makaleyi okuyun: "How to name resources using qualifiers (XAML)" ancak yalnızca yüksek kontrast desteği açısından varlıkları isim gösterir

+0

encounte kullanmak Bu oyunu kendim için hazırladım. WP10 üzerinde beyaz tema için beyaz bir simge istiyorum, bir süre beyaz tema için başka bir renk simgesi – Quincy

+0

"Kontrast beyazı" ve "kontrast-siyahı" kullanmak, örn. Groove Müzik bu yaklaşımı kullanır. Uygulamalarımda iyi çalışıyor, tek istisna, açılış ekranı. – sibbl

+0

@sibbl Öneriniz için teşekkürler, ancak Yüksek Kontrast açık olmadığı sürece bu çalışmaz. Dosya adı (örneğin, ölçek 150): LogoWithName.scale-150_contrast-black.png. Bunu işe koymaya karar verdiğiniz başka bir şey olmadığından emin misiniz? –

cevap

2

Bu yaklaşımın elemeleri kadar uygun değil, ama o inşaat

tanımlayın.. App.xaml içinde

<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> 

Sonra

<Image Source="{ThemeResource Logo}"/>