Я пытался запустить очень простое приложение, которое каждую секунду перемещает квадрат 20 на 20 пикселей на 20 пикселей вправо на холсте.Я использую диспетчер для запуска события каждую секунду.
Проблема в том, что квадрат не сдвигается вправо, если я не встряхиваю окно приложения (с помощью мыши), и он иногда перемещается сам по себе(хотя и не каждую секунду).
Я уже пытался переустановить Visual Studio 2017 и установить его на мой SSD и жесткий диск, но ни одна из них, похоже, не устранила проблему.
Вот полный кодMainWindow.xaml.cs приложения
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
DispatcherTimer timer = new DispatcherTimer();
Rectangle s = new Rectangle();
Point currentPosition = new Point(20, 20);
public MainWindow()
{
InitializeComponent();
timer.Tick += Timer_Tick;
timer.Interval = TimeSpan.FromSeconds(1);
timer.Start();
s.Width = 20;
s.Height = 20;
s.Fill = new SolidColorBrush(Colors.Black);
map.Children.Add(s);
}
public void Timer_Tick(object sender, EventArgs e)
{
RedrawSquare();
}
public void RedrawSquare()
{
map.Children.Clear();
s.Width = 20;
s.Height = 20;
s.Fill = new SolidColorBrush(Colors.Black);
Canvas.SetLeft(s, currentPosition.X += 20);
map.Children.Add(s);
}
}
В файле MainWindow.xaml есть пустой холст с именем «map»
Заранее спасибо