diff --git a/src/Artemis.UI/ViewModels/Controls/RgbDevice/RgbLedViewModel.cs b/src/Artemis.UI/ViewModels/Controls/RgbDevice/RgbLedViewModel.cs index cd50dacf7..d4d937b95 100644 --- a/src/Artemis.UI/ViewModels/Controls/RgbDevice/RgbLedViewModel.cs +++ b/src/Artemis.UI/ViewModels/Controls/RgbDevice/RgbLedViewModel.cs @@ -28,6 +28,7 @@ namespace Artemis.UI.ViewModels.Controls.RgbDevice public double Height { get; private set; } public Geometry DisplayGeometry { get; private set; } + public Geometry StrokeGeometry { get; private set; } public Color DisplayColor { get; private set; } public string Tooltip => $"{Led.Id} - {Led.LedRectangle}"; @@ -66,6 +67,28 @@ namespace Artemis.UI.ViewModels.Controls.RgbDevice GeometryCombineMode.Union, new ScaleTransform(Led.LedRectangle.Width, Led.LedRectangle.Height) ); + + // Create a smaller version of the display geometry + var innerGeometry = Geometry.Combine( + Geometry.Empty, + geometry, + GeometryCombineMode.Union, + new TransformGroup + { + Children = new TransformCollection + { + new ScaleTransform(Led.LedRectangle.Width - 2, Led.LedRectangle.Height - 2), + new TranslateTransform(1, 1) + } + } + ); + // Stroke geometry is the display geometry excluding the inner geometry + StrokeGeometry = Geometry.Combine( + DisplayGeometry, + innerGeometry, + GeometryCombineMode.Exclude, + null + ); } public void Update() diff --git a/src/Artemis.UI/Views/Controls/RgbDevice/RgbLedView.xaml b/src/Artemis.UI/Views/Controls/RgbDevice/RgbLedView.xaml index 012b3327c..e782c02e2 100644 --- a/src/Artemis.UI/Views/Controls/RgbDevice/RgbLedView.xaml +++ b/src/Artemis.UI/Views/Controls/RgbDevice/RgbLedView.xaml @@ -8,20 +8,22 @@ mc:Ignorable="d" d:DataContext="{d:DesignInstance rgbDevice:RgbLedViewModel}" d:DesignHeight="450" d:DesignWidth="800"> - - + + - + + - - - - - + + + + + + \ No newline at end of file