таймер / секундомер для автоматизации - PullRequest
0 голосов
/ 31 мая 2011

У меня есть круговая шкала (индикатор выполнения) с многоугольной иглой, которая, когда я выбираю число в списке, показывает, что стрелка поднимается до такой степени, что напоминает скорость в машине (работает просто отлично)

То, что я хочу сделать, это автоматически бегать по индексам пунктов списка (0,1,2,3, .... 60), поэтому стрелка медленно поднимается, пока не достигнет скорости 60. Затем держите это так долго, как я хочу, чтобы я мог двигать прихватку и соответственно запустить одометр. Я пытался использовать таймер в классе MVC и использовать секундомер. Я могу выбрать индекс 0 -6, но он просто перейдет к последнему. Я пытаюсь смоделировать приборную панель автомобиля как можно лучше ... Что вы думаете?

public partial class MainWindow : Window
{
    //DispatcherTimer timer;
    List<Double> _items = new List<Double>();


    DispatcherTimer timer;

    public MainWindow()
    {
        this.InitializeComponent();
        listBox1.ItemsSource = new List<double>() { 0,1,2,3,4,5,10,11,12,13,14, 15, 20, 25, 30, 35, 40 };
        checkBox1.IsChecked = true;
        park.Foreground = Brushes.Red;

        timer = new DispatcherTimer();
        timer.Interval = TimeSpan.FromMilliseconds(2500);
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();


    }

    void timer_Tick(object sender, EventArgs e)
    {



        int second = DateTime.Now.Second;

         firstDigitsec = second / 10;


        int secondDigitsec = second % 10;


        checkBox1.IsChecked = false;
        first.Foreground = Brushes.Green;
        park.Foreground = Brushes.White;
        checkBox2.IsChecked = true;



       Stopwatch stopwatch = Stopwatch.StartNew();

       listBox1.SelectedIndex = 0;
       listBox1.SelectedIndex = 1;
       listBox1.SelectedIndex = 2;
       listBox1.SelectedIndex = 3;


    }




    private int _stopw;
    public int sw
    {
        get { return _stopw; }
        set
        {
            _stopw = value;
            OnPropertyChanged("");

        }
    }



    private int _firstDigitsec;
    public int firstDigitsec
    {
        get { return _firstDigitsec; }
        set
        {
            _firstDigitsec = value;
             OnPropertyChanged("");
            /*
             if (firstDigitsec < 1)
             {
                 listBox1.SelectedIndex = 0;
             }
             if (firstDigitsec < 2)
             {

             */
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged(string propertyName)
        {
            var handler = PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }

1 Ответ

1 голос
/ 31 мая 2011

Поскольку вы используете WPF, это звучит как отличный кандидат для Анимация

Используйте привязку, чтобы связать свойство Progress вашего Gauge со свойством Progress в вашей модели представления и применить DoubleAnimation для анимациисвойство Progress от предыдущего значения до нового значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...