Silverlight 2.0 Beta 2 ile beraber gelen değişikliklerden biri de dinamik olarak Image nesneleri yaratmak ve bu nesnelere farklı resimler yüklemekle ilgili. Eskiden Beta 1 içerisinde sadece Source özelliğini değiştirerek resimleri dinamik olarak yükleyebiliyorken artık biraz daha uğraşmamız gerekiyor.
İlk olarak yeni bir Silverlight 2.0 Beta 2 projesi yaratarak projemize kullanacağımız resimleri ekleyelim. Sonrasında dinamik olarak bir Image nesnesi yaratıp içerisini ImageSource ile dolduruyoruz.
[VB]
Dim Foto As New Image
Dim Adres As New Uri("garden.jpg", UriKind.Relative)
Dim FotoKaynak As ImageSource = New System.Windows.Media.Imaging.BitmapImage(Adres)
Foto.SetValue(Image.SourceProperty, FotoKaynak)
Me.LayoutRoot.Children.Add(Foto)
[C#]
Image Foto = new Image();
Uri Adres = new Uri("garden.jpg", UriKind.Relative);
ImageSource FotoKaynak = new System.Windows.Media.Imaging.BitmapImage(Adres);
Foto.SetValue(Image.SourceProperty, FotoKaynak);
this.LayoutRoot.Children.Add(Foto);
Yukarıdaki kodumuzun ilk satırında yarattığım Silverlight Image nesnesini doldurmak için bir ImageSource'a ihtiyacımız var. Bunun için ilk olarak yükleyeceğimiz resim adresini Uri tipinde yaratıyoruz. Relative konumlandırma ile doğrudan uygulamanın içerisindeki resim dosyasını kullanacağız. Sonrasında elimizdeki Uri'den bir ImageSource yaratıyoruz ve bu ImageSource'u da Image nesnemizin SourcePropoerty'sine atıyoruz. Tüm bu işlemler tamamlandıktan sonra tabi ki eldeki Image Silverlight nesnesini de sahneye eklememiz lazım.
Peki ya proje harici bir resmi yüklemek istersek?
Harici resmin bulunduğu internet adresi üzerinden bir Uri yaratarak yukarıdaki kodun aynısını kullanabilirsiniz. Böylece uygulamanız söz konusu adresteki fotoğrafı yükleyecektir.
[VB]
Dim Adres As New Uri("www.alanadi.com/resim.jpg", UriKind.Absolute)
[C#]
Uri Adres = new Uri("www.alanadi.com/resim.jpg", UriKind.Absolute);
Hepinize kolay gelsin.