private void MiddleViewLoadButton_Click(object sender, RoutedEventArgs e) { var size = VisualTreeHelper.GetContentBounds(LeftViewContainer.Children[0]); ImageSource src = ImageExtensions.BitmapToImageSource( ImageExtensions.CanvasToBitmap(LeftViewContainer, true, Convert.ToInt32(size.Width), Convert.ToInt32(size.Height)) ); var newtiles = src.MapImageToTiles(Game.Get.TileManager.Tiles); #region first moveable test /*var image = ImageExtensions.ConstructSensorDataBackground(Tile.GetDebugTiles(2, 8, 8, 8, 4, 4)); * var img = new CustomImage * { * Source = ImageExtensions.BitmapToImageSource(image) * }; * img.SetValue(DraggableExtender.CanDragProperty, true); * * var secondImage = ImageExtensions.BuildImage(Tile.GetDebugTiles(6, 6, 8, 8, 4, 4)); * var secondImg = new CustomImage * { * Source = ImageExtensions.BitmapToImageSource(secondImage) * }; * secondImg.SetValue(DraggableExtender.CanDragProperty, true);*/ #endregion var imgList = ImageExtensions.GetIndividualSensorVisuals(Game.Get.TileManager.Tiles); Main.GetDispatcher.Invoke(PopulateCanvasControlDelegate, MiddleViewContainer, imgList, true); }
/// <summary> /// Forces a refresh on controls specified within the method. /// </summary> public void Render() { // only render if changes were found if (!Game.Get.TileManager.RenderChanged) { return; } var leftViewImage = new CustomImage(Game.Get.TileManager.GetRenderGraphic()); Main.GetDispatcher.Invoke(PopulateCanvasControlDelegate, LeftViewContainer, new List <CustomImage> { leftViewImage }, false); //TODO: grab list of all tiles in middleview. Then repopulate ONLY sensor data in them. //var rightViewImage = new List var sensorTiles = new List <CustomImage>(); foreach (UIElement child in MiddleViewContainer.Children) { if (child is CustomImage temp) { sensorTiles.Add(temp); } } foreach (var sensorTile in sensorTiles) { var tileData = sensorTile.TileData; //TODO: Check if i get the correct tile here sensorTile.TileData.Sensors = Game.Get.TileManager.Tiles[tileData.Position.X, tileData.Position.Y].Sensors; } var updatedSensorImages = ImageExtensions.GetIndividualSensorVisuals(Game.Get.TileManager.Tiles); PopulateCanvas(MiddleViewContainer, updatedSensorImages, false); // Force Refresh elements LeftViewContainer.Refresh(); MiddleViewContainer.Refresh(); this.Refresh(); }