private void PixelMouseDown(object sender, MouseButtonEventArgs e)
        {
            var clickedPixel = (Rectangle)sender;

            var name = clickedPixel.Name;

            if (name.Length <= 5)
            {
                return;
            }
            int pixelNumber;

            if (!int.TryParse(name.Substring(5), out pixelNumber))
            {
                return;
            }
            pixelNumber--;
            PixelClicked?.Invoke(pixelNumber, e);
            _lastPixelMouseMovedOver = clickedPixel;
        }
        private void LedDisplay_OnMouseMove(object sender, MouseEventArgs e)
        {
            if (e.LeftButton != MouseButtonState.Pressed)
            {
                return;
            }
            var pixel = Mouse.DirectlyOver as Rectangle;

            if ((pixel == null) || (pixel.Name.Length <= 4) || (pixel.Name.Substring(0, 5) != "Pixel") || Equals(_lastPixelMouseMovedOver, pixel))
            {
                return;
            }
            _lastPixelMouseMovedOver = pixel;
            int pixelNumber;

            if (!int.TryParse(pixel.Name.Substring(5), out pixelNumber))
            {
                return;
            }
            pixelNumber--;
            PixelClicked?.Invoke(pixelNumber, EventArgs.Empty);
        }