WPF ‘e has bu şahane çekirdek object DependencyObject. DoubleAnimation iile etkilenebilen propertyler içerir bunlar da DependencyProperty örnek olarak OpacityProperty için Window objesinde çalışmıştım. şimdi DependencyProperty sınıfındaki staticler arasında bulamadığımız propertyleri kendimiz register edip kullanıcaz.
DependencyProperty winColor = DependencyProperty.Register(“winColor”, this.Width.GetType(), this.GetType(), new PropertyMetadata(new PropertyChangedCallback(callit)));
a winColor adında bir DependencyProperty oluşturduk. adını . tipini property iyesinin tipini ve bu değeri uygulayacak callbacki belirttik. şimdi callit fonksiyonuyumuxu tanımlayalım.
privatevoid callit(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
Array BrushArray = Enum.GetValues(typeof(Brushes));
int brushOrder=(int)Math.Floor((double)e.NewValue) % (BrushArray.Length-1);
(Window)sender).Background = (Brush)BrushArray.GetValue(brushOrder);
}
bu fonksiyonumuza DependencyObject ve DependencyPropertyChangedEventArgs referansları geliyor event değişkenimizde newValue ve oldValue değerleri duruyor bunlar üzerine de bir çalışma yapmak istersek işimize yarayacaktır. şimdilik sadece newValu atamak olacak işimiz.
değiştiren callbackimiz de musaitse artık bu property için anmiation tanımayabilirz.
DoubleAnimation animeBack = new DoubleAnimation(0,100,new Duration(TimeSpan.FromMilliseconds(10000)));
animeBack.RepeatBehavior =RepeatBehavior.Forever;
this.BeginAnimation(winColor,animeBack);
dependencyproperty kütüphanesi hazırlıyorum yararlı olacak inş şimdilik bu kadar yeter.iyi çalışmalar…









