Эй.У меня есть изображение размером 480 x 800, и я хотел бы разместить его на моем тайлекарте.Я пытаюсь разделить изображение на сетку (6 х 10) и назначить каждой плитке определенную часть изображения.По сути, карта тайлов будет выглядеть как одно большое изображение, так как к каждой плитке прикреплена соответствующая часть изображения.Какой лучший способ сделать это?Я попытался просмотреть каждую плитку и нарисовать ее на WriteableBitmap, но все изображения одинаковы.
WriteableBitmap wb = new WriteableBitmap(80,80);
Rect src= new Rect(x*Width,y*Height, 80, 80);
Rect dest= new Rect(0, 0, 80, 80);
wb.Blit(dest, mainWb, src);
tile.SetImage(wb);
(x и y) - это просто индексы, используемые при итерации карты тайла,это высота и ширина плитки, а mainWb
- это большое изображение, которое я хочу разделить.Спасибо за любую помощь.
edit: Код полного цикла:
var mainImage = Application.GetResourceStream(new Uri("MainImage.jpg", UriKind.Relative)).Stream;
WriteableBitmap mainWb = new WriteableBitmap(480, 800);
mainWb.SetSource(mainImage);
for (int x = 0; x < 6; x++)
{
for (int y = 0; y < 12; y++)
{
Tile tile = new Tile();
WriteableBitmap wb = new WriteableBitmap(80,80);
Rect src = new Rect(x*Width,y*Height, 80, 80);
Rect dest = new Rect(0, 0, 80, 80);
wb.Blit(dest, mainWb, src);
tile.SetImage(wb);
Canvas.SetLeft(tile, x * WIDTH);
Canvas.SetTop(tile, y * HEIGHT);
LayoutRoot.Children.Add(tile);
ls.Add(tile);
}
}
Класс Tile
представляет собой простой холст 80x80 с элементом управления Image, называемым img
.Вышеуказанный метод SetImage
таков:
public void SetImage(WriteableBitmap wb)
{
img.Source = wb;
}