Пробую сделать простенькое приложение, но никак не могу разобраться, как сделать передвижение объектов (изображения).
Делаю это так:
XAML:
<Canvas x:Name="main" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Image Height="767" Canvas.Top="0" Width="1365" x:Name="Ground" Source="images/land.jpg" Stretch="UniformToFill" Canvas.Left="0"/>
</Canvas>
C#:
enum CellType { Empty, Visited, Sun };
CellType[,] Board = new CellType[41, 41];
public MainPage()
{
this.InitializeComponent();
SetupSuns();
timerStart();
}
public int x = 31;
public int y = 4;
public void SetupSuns()
{
var ninja = new Image();
ninja.Source = new BitmapImage(new Uri("ms-appx:/images/ninjarun.png"));
if (x == 31)
{
ninja.Source = new BitmapImage(new Uri("ms-appx:/images/ninjarun2.png"));
}
ninja.Width = 32;
ninja.Height = 39;
Board[x, y] = CellType.Sun;
main.Children.Add(ninja);
Canvas.SetLeft(ninja, x * 40);
Canvas.SetTop(ninja, y * 40);
}
private DispatcherTimer timer = null;
private void timerStart()
{
timer = new DispatcherTimer(); // если надо, то в скобках указываем приоритет, например DispatcherPriority.Render
timer.Tick += (sender, e) =>
{
x++;
Canvas.SetLeft(ninja, x * 40);
if (x == 50)
{
timer.Stop();
}
};
timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
timer.Start();
}
}
Только учусь писать приложения на C#, поэтому нужна ваша помощь.
Нужно чтобы созданное изображение ninja перемещалось с помощью таймера по оси переменной x.
Что в данный момент и не работает.
Также интересно, как можно решить эту же проблему и с несколькими подобными движущимися объектами? Как обратиться к объекту ninja из одного класса в другом и изменить его свойство(x)?