private void OnHueRingImageSizeChanged(object sender, SizeChangedEventArgs e)
        {
            if (hueRingImage.ActualHeight == 0 ||
                hueRingImage.ActualWidth == 0)
            {
                return;
            }

            var minSize = Math.Min(hueRingImage.ActualHeight, hueRingImage.ActualWidth);
            var outerRingRadius = minSize / 2;
            var innerRingRadius = outerRingRadius * 2 / 3;
            var triangleWidth = innerRingRadius * Math.Sqrt(3);
            var triangleHeight = innerRingRadius * 3 / 2;
            var wb = new WriteableBitmap((int)triangleWidth, (int)triangleHeight);
            wb.RenderColorPickerSaturationLightnessTriangle();
            saturationLightnessTriangleImage.Source = wb;
            saturationLightnessTriangleImage.Margin = new Thickness(0, outerRingRadius - innerRingRadius, 0, outerRingRadius - innerRingRadius * 0.5);
        }