Сброс ширины прямоугольника в Canvas с помощью DispatcherTimer C# - PullRequest
0 голосов
/ 26 февраля 2020

Я делаю c# упражнения и наткнулся на это. где ширина прямоугольника будет увеличиваться с каждой секундой, а через 60 секунд она должна go вернуться к своему первоначальному размеру. Тем не менее, я не могу заставить его работать ... есть идеи? и где я могу изучить этот раздел?

public partial class MainWindow : Window
    {
        int witdhSec = 0;
        double witdhMin = 0;
        private SolidColorBrush brush;
        private DispatcherTimer timer = new DispatcherTimer();
        public MainWindow()
        {
            InitializeComponent();
            brush = new SolidColorBrush(Colors.Black);

            timer.Interval = TimeSpan.FromSeconds(1);
            timer.Tick += Timer_Tick;
            timer.Start();

        }

        private void Timer_Tick(object sender, EventArgs e)
        {

            updateRectangle();
            DrawRectangle(paperCanvas, brush, 0, 20, witdhSec, 45);
            DrawRectangle(paperCanvas, brush, 0, 150, witdhMin, 45);


        }
        private void updateRectangle()
        {
            witdhSec = witdhSec + 10;
            witdhMin = witdhMin + 0.16;

        }

        private void DrawRectangle(Canvas drawingArea,
                                   SolidColorBrush brushToUse,
                                   double xPos,
                                   double yPos,
                                   double width,
                                   double height
                                   ) 
        {
            Rectangle rect = new Rectangle();
            rect.Width = width;
            rect.Height = height;
            rect.Margin = new Thickness(xPos, yPos, 0, 0);
            rect.Stroke = brushToUse;
            drawingArea.Children.Add(rect);
            rect.Fill = brushToUse;
        }


    }
}
...