private async Task BindImages(CanvasProject project) { collageCanvas.AllowDrop = true; Random degrees = new Random(5); int maxWidth = (int)Window.Current.Bounds.Width; int maxCols = (int)maxWidth / 300; int row = 0, col = 0; for (int i = 0; i < project.Pictures.Count; i++) { var canvasPicture = project.Pictures[i]; Image image = new Image(); using (var fileStream = await canvasPicture.SourceFile.OpenAsync(FileAccessMode.Read)) { var sourceImage = new BitmapImage(); sourceImage.SetSource(fileStream); image.Source = sourceImage; image.Tag = canvasPicture; image.Height = 300; image.Height = 200; image.Stretch = Stretch.Uniform; image.IsHitTestVisible = true; image.IsTapEnabled = true; TransformableContainer container = new TransformableContainer(); container.Content = image; container.Transform.Rotation = degrees.Next(-15, 15); col = (col + 1 > maxCols) ? 0 : col + 1; row = (col + 1 > maxCols) && (i != 0) ? row + 1 : row; container.Transform.TranslateX = col * 300; container.Transform.TranslateY = row * 200; container.Transform.CenterX = 150; container.Transform.CenterY = 100; container.CanvasPicture = canvasPicture; collageCanvas.Children.Add(container); } } }