using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml.Serialization;
namespace ButtonBindingKaydetme
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
try//ayarlar xmlini bulamazsa kod patlamasın diye try bloğu kullanmalıyız.
{
using (StreamReader okuyucu = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "\\ayarlar.xml"))
{
//xml dosyasından kaydedilen ayarları oku ve butona yansıt
XmlSerializer deSerilestirici = new XmlSerializer(typeof(List<ButonAyarlari>));
List<ButonAyarlari> ayarlar = (List<ButonAyarlari>)deSerilestirici.Deserialize(okuyucu);
//Listenin ilk kayıdında bizim buton ayarları var
btnHedef.DataContext = ayarlar[0];
}
}
catch//dosya yoksa ilk ayarlar ile buton başlasın
{
btnHedef.DataContext = new ButonAyarlari
{
Genislik = 350,
Yukseklik = 25,
ButonContent = "Ayarları Değiştirilen"
};
}
}
private void btnDegistirici_Click(object sender, RoutedEventArgs e)
{
btnHedef.DataContext = new ButonAyarlari
{
Genislik = 250,
Yukseklik = 100,
ButonContent = "Selamlar"
};
}
private void btnEskiAyarlaraGetir_Click(object sender, RoutedEventArgs e)
{
btnHedef.DataContext = new ButonAyarlari
{
Genislik = 350,
Yukseklik = 25,
ButonContent = "Ayarları Değiştirilen"
};
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
List<ButonAyarlari> tumAyarlar = new List<ButonAyarlari>();
var kaydedilecekButonAyarlari = (ButonAyarlari)btnHedef.DataContext;
tumAyarlar.Add(kaydedilecekButonAyarlari);
//Ayarları xmle yaz.
using (StreamWriter yazici = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\ayarlar.xml"))
{
XmlSerializer serilestirici = new XmlSerializer(typeof(List<ButonAyarlari>));
serilestirici.Serialize(yazici, tumAyarlar);
}
}
}
// Başka kaydetmek istediğiniz özellik varsa bu sınıfa o özelliği ekleyebilirsiniz.
public class ButonAyarlari
{
public double Genislik
{
get;
set;
}
public double Yukseklik
{
get;
set;
}
public string ButonContent
{
get;
set;
}
}
}