Mini Kabibi Habibi
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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 DevExpress.Xpf.Editors;
using System.Windows.Media.Animation;
namespace EditorsDemo {
public partial class Safe : UserControl {
public Safe() {
InitializeComponent();
DigitTemplatesHelper.SetTemplates((ObjectList)Resources["digits"]);
firstDigit.EditValue = 0d;
secondDigit.EditValue = 0d;
thirdDigit.EditValue = 0d;
}
void trackBarButtonClick(object sender, RoutedEventArgs e) {
Button button = sender as Button;
TrackBarEdit trackBar = (button.GetValue(BaseEdit.DataContextProperty)) as TrackBarEdit;
StartAnimation(Convert.ToDouble(button.Tag), trackBar);
}
void StartAnimation(double value, TrackBarEdit trackBar) {
DoubleAnimation animation = new DoubleAnimation() { To = value, Duration = new Duration(new TimeSpan(0, 0, 0, 0, 500)), FillBehavior = FillBehavior.HoldEnd };
Storyboard storyboard = new Storyboard();
Storyboard.SetTarget(animation, trackBar);
Storyboard.SetTargetProperty(animation, new PropertyPath("Value"));
storyboard.Children.Add(animation);
storyboard.Begin();
}
}
public class ToDigitConverter : IValueConverter {
#region IValueConverter Members
object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
if (value == null)
return null;
if(value as string == null)
return DigitTemplatesHelper.GetTemplate((int)((double)value));
else
return DigitTemplatesHelper.GetTemplate((int)Convert.ToDouble((string)value));
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
#endregion
}
public static class DigitTemplatesHelper {
static WeakReference templates;
public static ControlTemplate GetTemplate(int digit) {
return (ControlTemplate)((ObjectList)DigitTemplatesHelper.templates.Target)[digit];
}
public static void SetTemplates(ObjectList templates) {
DigitTemplatesHelper.templates = new WeakReference(templates);
}
}
}