public SelfmadeSVI(ProtoDefinition protoDefinition = null) { InitializeComponent(); if (protoDefinition != null) { this.ProtoDefinition = protoDefinition; } //apply width and height this.MainCanvas.Width = this.ProtoDefinition.Width; this.MainCanvas.Height = this.ProtoDefinition.Height; // applying the color BrushConverter cConverter = new BrushConverter(); this.OwnColoredRectangle.Fill = cConverter.ConvertFromString(this.ProtoDefinition.Color) as SolidColorBrush; //TODO: apply the given image // initial position MatrixTransform matrixTransform = this.RenderTransform as MatrixTransform; Matrix rectsMatrix = matrixTransform.Matrix; rectsMatrix.Translate(this.ProtoDefinition.X, this.ProtoDefinition.Y); this.RenderTransform = new MatrixTransform(rectsMatrix); }
public SimObject(ProtoDefinition protoDefinition = null) { InitializeComponent(); if (protoDefinition != null) { this.ProtoDefinition = protoDefinition; } //apply width and height this.Width = (this.ProtoDefinition.Width * App.UnitConversionFactor) / App.DpiFactor; this.Height = (this.ProtoDefinition.Height * App.UnitConversionFactor) / App.DpiFactor; // applying the color BrushConverter cConverter = new BrushConverter(); this.MainGrid.Background = cConverter.ConvertFromString(this.ProtoDefinition.Color) as SolidColorBrush; //apply the given image if (this.ProtoDefinition.ImagePath != null && this.ProtoDefinition.ImagePath != "") { this.MainGrid.Background = Brushes.Transparent; this.ObjectNameTextBlock.Visibility = Visibility.Hidden; //see if we can load an image try { BitmapImage src = new BitmapImage(); src.BeginInit(); src.UriSource = new Uri(App.ProjectPath + this.ProtoDefinition.ImagePath, UriKind.Relative); src.CacheOption = BitmapCacheOption.OnLoad; src.EndInit(); this.OwnImage.Source = src; } catch (Exception e) { Console.WriteLine(e.Message); } this.OwnImage.Visibility = Visibility.Visible; } // initial position MatrixTransform matrixTransform = this.RenderTransform as MatrixTransform; Matrix rectsMatrix = matrixTransform.Matrix; rectsMatrix.Translate((this.ProtoDefinition.X * App.UnitConversionFactor) / App.DpiFactor, (this.ProtoDefinition.Y * App.UnitConversionFactor) / App.DpiFactor); this.RenderTransform = new MatrixTransform(rectsMatrix); //applying the name for debugging if in devmode if (App.DevMode) { this.ObjectNameTextBlock.Text = this.ProtoDefinition.ObjectName; } //Rendering Event for selfmade inertia CompositionTarget.Rendering += CompositionTarget_Rendering; }