24 Mar 2009 Silverlight 3 Beta – SaveFileDialog Kullanımı Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 2 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen SaveFileDialog nesnesinin kullanımı inceleyeceğiz.Silverlight 3 Beta ile birlikte gelen SaveFileDialog ile Silverlight uygulamasındaki bir dosyayı istemci kullanıcının makinesine kaydetmemizi sağlar. Hatırlatmak da fayda var, Silverlight 2.0 ile birlikte de OpenFileDialog kontrolü Silverlight kontrol kütüphanesine eklenmişti. Bu kontrolle de istemcinin makinesindeki bir dosyayı Silverlight uygulaması içinde kullanabiliyoruz. Şöyle bir şey yapabiliriz artık, OpenFileDialog ile bir dosyayı alıp üzerinde değişiklik yapıp, SaveFileDialog kontrolü ile de kaydedebiliriz. SaveFileDialog kontrolünün bazı önemli özelliklerini inceleyecek olursak;Filter özelliği ile SaveFileDialog ile kaydedilecek dosyanın uzantısını yada uzantılarını bu özellikle belirleyebiliriFilterIndex özelliği ile filtreler içinde bulunan seçeneklerden hangisinin seçileceğini belirleriz. DefaultExt özelliği ile herhangi bir filter seçmezsek DefaultExt özelliği ile belirttiğimiz uzantıyı alır ShowDialog metodu ile SaveFileDialogu ekranda gösterebiliyoruz. Geriye Boolen bir değer döndürür. Silverlight uygulamasında kullanıcıların Text dosyalarını açıp bu dosyalar üzerinde değişiklik yapıp kaydetmesini sağlayacak bir uygulama geliştirelim. Böylece hem OpenFileDialog hemde SavaFileDialog nesnelerini incelemiş olacağız. Bunun için Silverlight projesi oluşturalım. Projemize aç, kaydet için iki buton ve dosyadaki içeriği görüntülemek içinde bir textbox ekleyelim. [XAML] <UserControl x:Class="SL3BetaSaveFileDialogKontrolu.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"><Canvas x:Name="LayoutRoot" Background="White"> <Button x:Name="btnAc" Content="Aç" Width="100" Height="30" Canvas.Top="10" Canvas.Left="10"></Button> <Button x:Name="btnKaydet" Content="Kaydet" Width="100" Height="30" Canvas.Left="120" Canvas.Top="10"></Button> <TextBox x:Name="txtIcerik" Text="İçerik" Width="380" Height="240" Canvas.Left="10" Canvas.Top="50"></TextBox></Canvas></UserControl> İlk olarak dosyayı OpenFileDialog nesnesini kullanarak açalım ve textbox kontrolün de gösterelim.[OpenFileDialog] void btnAc_Click(object sender, RoutedEventArgs e) { OpenFileDialog dosyaAc = new OpenFileDialog(); // OpenFileDialog nesnesi oluşturalım. dosyaAc.Multiselect = false; // Çoklu seçime izin vermeyelim. dosyaAc.Filter = "Text Dosyaları(*.txt)|*.txt"; // Açılacak olan dosyanın uzantısı if (dosyaAc.ShowDialog() == true) // Bir dosya seçilmezse yada iptal’e basılırsa hata vermemesi için kontrolümüzü yapalım { string contents = ""; StreamReader reader = new StreamReader(dosyaAc.File.OpenRead(), System.Text.Encoding.UTF8); // OpenFileDialog nesnesi ile açılan dosyayı StreamReader ile okuyalım. while(!reader.EndOfStream) // Okunan dosya sona geldimi { contents = reader.ReadToEnd();// Sonuna kadar oku } txtIcerik.Text = contents; // Okunan dosyanın içeriğini textbox’a ata. reader.Close(); // Okuyucuyla işimiz bitti kapatalım. }} Şimdide kullanıcının dosyayı SaveFileDialog nesnesi kullanarak kaydetmesini sağlayalım. [SaveFileDialog] void btnKaydet_Click(object sender, RoutedEventArgs e) { SaveFileDialog dosyaKaydet = new SaveFileDialog(); //SaveFileDialog nesnesi oluşturalım. dosyaKaydet.Filter = "Text Dosyası(txt)|*.txt"; // Kaydedilecek dosya sadece txt dosya olabilisin. if (dosyaKaydet.ShowDialog() == true) { StreamWriter writer = new StreamWriter(dosyaKaydet.OpenFile());//Seçilen dosyayı StreamWriter ile açalım… writer.Write(txtIcerik.Text);// Seçilen dosyaya içeriği atayalım. writer.Close(); // Yazıcıyı kapatmayı unutmayalım. }} Bir dosya açalım ve dosyayı kaydedelim. Eğer dosya yoksa direk de kaydedebiliriz Dosyayı kaydetmeye çalışalım. Masaüstüne kaydedelim, Şimdi Masaüstüne bakalım, Masaüstüne dosya kaydedilmiş, Dosyanın içine bakalım, Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;)Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklarmsdn.comsilverlight.net Yorum (2) ömer ss / 1.4.2009 20:18:47 ya abi yazıları kaydediyonda ben yaptıgım projenin kendisini exe uzantılı olarak nasıl kaydetcem yaa anlamadım o nasıl olcak nolur birisi cevap yazsın Sem GÖKSU / 1.4.2009 22:53:58 @Ömer=> Exe olarak kaydetmekten kastın tam olarak nedir? Out of browser özelliği var. Acaba onu mu kastediyorsun? http://www.semgoksu.com/silverlight-3-beta-silverlight-uygulamalarinin-browser-disina-alinmasi-makalesi/522.aspx Yorum Yaz * Ad Soyad: * Email: * Message:
Yorum (2) ömer ss / 1.4.2009 20:18:47 ya abi yazıları kaydediyonda ben yaptıgım projenin kendisini exe uzantılı olarak nasıl kaydetcem yaa anlamadım o nasıl olcak nolur birisi cevap yazsın Sem GÖKSU / 1.4.2009 22:53:58 @Ömer=> Exe olarak kaydetmekten kastın tam olarak nedir? Out of browser özelliği var. Acaba onu mu kastediyorsun? http://www.semgoksu.com/silverlight-3-beta-silverlight-uygulamalarinin-browser-disina-alinmasi-makalesi/522.aspx
ömer ss / 1.4.2009 20:18:47 ya abi yazıları kaydediyonda ben yaptıgım projenin kendisini exe uzantılı olarak nasıl kaydetcem yaa anlamadım o nasıl olcak nolur birisi cevap yazsın
Sem GÖKSU / 1.4.2009 22:53:58 @Ömer=> Exe olarak kaydetmekten kastın tam olarak nedir? Out of browser özelliği var. Acaba onu mu kastediyorsun? http://www.semgoksu.com/silverlight-3-beta-silverlight-uygulamalarinin-browser-disina-alinmasi-makalesi/522.aspx