Bu yazımızda Silverlight 3 ile birlikte SaveFileDialog kullanımına göz atalım.
İlk olarak yeni bir proje açalım ve proje içerisine metin girilmek için bir textbox ve kaydetmek için bir button ekleyelim.
Projemizin xaml kodları aşağıdaki gibi olacak
MainControl.xaml
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SaveDialog.MainControl"
Width="416" Height="152">
<Grid x:Name="LayoutRoot" Background="White">
<Button x:Name="button_kaydet" Margin="0,71,77,50" Content="Kaydet" Width="90" HorizontalAlignment="Right""button_kaydet_Click"/>
Click=
<TextBox x:Name="textbox_girilen" Height="30" Margin="79,37,77,0" VerticalAlignment="Top" Text="Metin giriniz...""Wrap"/>
TextWrapping=
</Grid>
</UserControl>
Projemizin C#kodları aşağıdaki gibi olacak
MainControl.xaml.cs
1 using System;
2 using System.Windows;
3 using System.Windows.Controls;
4 using System.Windows.Documents;
5 using System.Windows.Ink;
6 using System.Windows.Input;
7 using System.Windows.Media;
8 using System.Windows.Media.Animation;
9 using System.Windows.Shapes;
10 using System.IO;
11 using System.Text;
12
13 namespace SaveDialog
14 {
15 public partial class MainControl : UserControl
16 {
17 public MainControl()
18 {
19 // Required to initialize variables
20 InitializeComponent();
21 }
22
23 private void button_kaydet_Click(object sender, System.Windows.RoutedEventArgs e)
24 {
25 SaveFileDialog dosyakaydetme = new SaveFileDialog();
26 dosyakaydetme.Filter = "Metin Belgeleri (.txt)|*.txt|Tüm Dosyalar|*.*";
27 dosyakaydetme.FilterIndex=1;
28 bool? ret=dosyakaydetme.ShowDialog();
29 if (ret==true)
30 {
31 using(Stream fs = (Stream)dosyakaydetme.OpenFile())
32 {
33 byte[] metin = (new UTF8Encoding(true)).GetBytes(textbox_girilen.Text);
34 fs.Write(metin,0,metin.Length);
35 fs.Close();
36 }
37 }
38 }
39 }
40 }
"System.IO" ve "System.Text" namespace'lerini ekleyerek metin işlemlerini ve SaveFileDialog işlemlerini gerçekleştirebiliriz. Dialog penceresinin gösterilmesini bool bir değere bağlayarak kaydetmek istediğimiz metni buna bağlı hale getirdik ve metin içeriğini UTF8 formatında kaydederek saklamamızı sağlayacak.
Ayrıca kaydetmek istediğimiz türü belirlemek için de 2 farklı filtre oluşturduk.

Metni girip kaydet'e bastığımız zaman SaveFileDialog penceremiz geldi. SaveFileDialog'a Filter eklememizle birlikte metin kaydetmemiz daha da kolaylaştı.

Kaydettiğimiz metin dosyasının içeriği kaydetmek istediğimiz metin ile aynı, başarı ile kaydedildi. SaveFileDialog'u istediğimiz şekilde modifiye ederek projede istediğimiz gibi kullanabiliriz.
Takıldığınız, sormak istediğiniz veya düzeltmek istediğiniz yerleri
ibrahim.kivanc@msakademik.net mail adresime iletebilirsiniz.