2013-01-16 15 views
7

Bir görüntü kaynağını (.jpg) kullanarak bir simge görüntülemeye çalışıyorum. Görünüm modelinde bir Simge özelliği oluşturuyorum ve görüntünün yolunu atamaya çalışıyorum ancak görünümde herhangi bir resim göremiyorum. Yolu Bitmap görüntüsüne dönüştürmeyi denedim, ancak çalışmıyor. Burada eksik olduğum bir şey var mı?WpF içinde özellik aracılığıyla görüntü kaynağının ciltlenmesi

<StackPanel Orientation="Horizontal"> 
           <TextBlock Text="{Binding Path=Name}"/> 
           <Image Source="{Binding Path=Icon}"></Image> 
          </StackPanel> 




BitmapImage img = new BitmapImage(); 
        img.BeginInit(); 
        img.CacheOption = BitmapCacheOption.OnLoad; 
        img.CreateOptions = BitmapCreateOptions.IgnoreImageCache; 
        img.UriSource = new Uri("C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg", UriKind.Absolute); 
        img.EndInit(); 
        Icon = img; 
+0

Eğer Simge özelliğinde olmalıdır Uri bir örneğini var mı (zaten bunu)

? Resim gömülü bir kaynak mı, gevşek bir dosya mı, yoksa web mi? – slugster

+0

Onun tarafından oluşturulan sadece bir .jpg resmi. Görüntü masaüstümde saklanır. Ve ben onu Icon özelliğine bağlamaya çalışıyorum. – Virus

+0

Ve 'Simge 'görüntü dosyasının mutlak yolunu içeriyor mu? – Clemens

cevap

19

Kendime bir kez rastladım ve belki de en iyi çözüm olmasa da, benim için çalıştım.

1.

örneğin, proje resim ekleyin:

  • projenize bir klasör görüntüleri/simgeleri oluşturun ve orada resimleri ekleyin.

    public ImageSource YourImage 
        { 
         get { return _yourImage; } 
         set 
         { 
          _yourImage = value; 
          NotifyOfPropertyChange(() => YourImage); 
         } 
        } 
    

    (Not: Ben bağlayıcı yardımcı olmak için Caliburn mikro kullanmak)

2. Bir ImageSource mülkü oluşturma İçeriğe görüntülerin

  • Seti inşa eylemi (daha yeni kopyası)

    3. Güncelleme böyle ImageSource:

    YourImage özelliğine

    4. Bind kaynak özelliği:

  • +1

    Ayrıca, bir yoldan ImageSource oluşturmak için bir dönüştürücü kullanmayı düşünebilirsiniz. – slugster

    +0

    Bu görüntüyü çözüme eklememiz şart mı? ve bunu viewmodel'den yapmaya çalışıyorum, tamam mı? – Virus

    +1

    @slugster gerçekten ama ek bir ekstra yük katacak. Bu iyi bir alternatif ama ben şahsen ben dönüştürücüler çok düşkün değilim. – Deruijter

    İlgili konular