2012-01-12 21 views
6

Daha büyük ölçekli bir Silverlight 4 projesinin geliştirilmesinin bir parçasıyım. Burada GUI'nin farklı kısımlarında kullanılması gereken bir dizi sembolün yer alacağı yer var (aşağıdaki örneğe bakınız).Büyük bir projede simgeler (xaml yolları) nasıl yeniden kullanılır?

Bu simgeler doğrudan Blend'de birden çok yoldan yapılır ve tek veya farklı görsel durumlar için usercontrol'lerde kullanılır (aynı simge birden fazla bağlamda kullanılır). Tek bir simgenin tasarımını değiştirmeyi kolaylaştırmak ve uygulama boyunca yayılmasını sağlamak için bunları depolamanın en iyi yolu nedir?

Onlardan stiller oluşturmayı denedim (sağ tıklama -> stil düzenle ..), ancak bu yalnızca herhangi bir yol verisi olmadan boş bir stil oluşturmama izin veriyor. Bir sözlük içine yolları içeren ızgara için xaml kodunu elle koyma, ne eksik, ne de yardımcı oldu mu?

Yol ve stil (renk, kontur, dolgu vb.) Bilgilerini tercihen bir kaynak sözlüğünde kolay bir şekilde nasıl kaydederim, böylece kolay güncelleştirmeyi korurken bunları kullanıcı denetimlerinde ve başka yerlerde kolayca yeniden kullanabilirim?

enter image description here

cevap

7
<Style x:Key="MyIcon" TargetType="ContentControl"> 
     <Setter Property="ContentTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <Path Stretch="Fill" Fill="Red" Data="F1 M 24,13C 27.1521,13 29.9945,14.3258 32,16.4501L 32,11L 35,14L 35,22L 27,22L 24,19L 29.5903,19C 28.217,17.4656 26.2212,16.5 24,16.5C 20.1969,16.5 17.055,19.3306 16.5661,23L 13.0448,23C 13.5501,17.3935 18.262,13 24,13 Z M 24,31.5C 27.8031,31.5 30.945,28.6694 31.4339,25L 34.9552,25C 34.4499,30.6065 29.738,35 24,35C 20.8479,35 18.0055,33.6742 16,31.5499L 16,37L 13,34L 13,26L 21,26L 24,29L 18.4097,29C 19.783,30.5344 21.7787,31.5 24,31.5 Z "/> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

Sonra ContentControl tipi (veya türevleri) ile stil kullanmak:

<ContentControl Style="{StaticResource MyIcon}" Width="20" Height="20" Grid.Row="0"/> 

Tüm stilleri olabilir ben yeniden çalışıyorum simgelerin

Örnek Bazı kaynak sözlük içinde: Bu oldukça bilgilendirici bir yazıdır: http://blogs.infosupport.com/tips-for-effective-usage-of-resource-dictionaries-in-silverlight-and-wpf/

+0

Bu cevap daha iyidir, daha sonra kullanıcı etkileşimi vermek gibi şeyler için düğmeler kullanma alışkanlığım var. ContentControl senin arkadaşın. –

+0

Daha önce bu yaklaşımla ilgili sorunlar yaşadım: özellikle Blend, yol verilerini doğru şekilde yüklemek istemiyor gibi görünüyor. Ne yazık ki daha iyi bir çözümüm yok. –

İlgili konular