WPF uygulamalarında özel dosyaları Resource olarak saklamak ve kullanmak

0 dakikada yazıldı

6093 defa okundu

Düzenle

Uygulamalarda kullandığımız ikonlar veya görselleri çoğu zaman uygulama
klasöründe saklamayı sevmeyiz. Hem bu görselleri kısmen korumak için hem
de kalabalık yaratmamaları için EXE'nin içerisinde gömmeyi tercih
ederiz. WPF ile beraber bu iş biraz daha kolaylaşıyor. Gelin bir WPF
uygulamasında herhangi bir görseli nasıl dahili hale getirebileceğimizi
inceleyelim.

Visual Studio ile yarattığımız yeni WPF projemize Solution Explorer
içerisinde sağ tuş ile tıklayarak gelen menüden "Add Existing Item"
diyip yeni bir JPEG dosyası ekliyoruz. Amacımız bu dosyayı EXE'nin
içinde saklayarak uygulamanın ana penceresinde de göstermek.

Dosyayı projenize ekledikten sonra onu seçerek hemen "Propterties"
paneline göz atmanız gerekiyor. Böylece bu resim dosyası ile ilgili
projedeki ayarları değiştirebileceğiz. Dosya ile ilgili "Build
Action
" ayarının kesinlikle "Resource" olması gerekiyor. Tüm bu
ayarları tamamladıktan sonra XAML tarafında bir Image nesnesi ekleyelim.

[XAML]

<Window
x
:Class="Window1"

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

  Title="Window1"
Height
="300" Width="300">

    <Grid>

    <Image
x
:Name="Foto"
HorizontalAlignment
="Stretch"
VerticalAlignment
="Stretch"></Image>

  </Grid>

</Window>

Basit bir şekilde eklediğimiz ve adı Foto olan bu Image
nesnesine çalışma zamanında biraz önce EXE'mize eklediğimiz fotoğrafı
aktarmamız gerekiyor. Bunun için Window.Loaded event'ını
kullanacağız.

[VB]

Foto.Source = New BitmapImage(New Uri("pack://application:,,,/resim.jpg"))

Gördüğünüz üzere işlem epey basit. Aslında anahtar kısım Uri
tarafında. Eğer uygulama içerisindeki Resource'lara ulaşmak istiyorsanız
pack Uri'leri kullanmanız gerekiyor. pack Uri'lerinin syntax yapısına
girmeyeceğim, epey uzun ve detaylı bir konu. Bizim için şimdilik önemli
olan bu Uri'nin sonundaki dosya ismini değiştirerek istediğimiz kaynağa
erişebiliyor olmamız. Eğer uygulama içi klasörler yaratarak dosyaları
ayrı klasörlere koyduysanız doğrudan resim.jpg'in önünde path bilgisi de
yazabilirsiniz.

Bu sistemi ister resim, ister ses, ister fare imleci saklamak için
kullanabilirsiniz. Artık bu gibi ufak kaynaklar otomatik olarak
EXE'nizin içerisinde taşınıyor olacak.

Hepinize kolay gelsin.