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