public D2D1GradientStop[] GetGradientStops()
        {
            uint count = this.gradientStopCollection.GetGradientStopCount();

            D2D1GradientStop[] gradientStops = new D2D1GradientStop[count];
            this.gradientStopCollection.GetGradientStops(gradientStops, count);

            return gradientStops;
        }
        public D2D1GradientStopCollection CreateGradientStopCollection(D2D1GradientStop[] gradientStops)
        {
            if (gradientStops == null)
            {
                throw new ArgumentNullException("gradientStops");
            }

            if (gradientStops.Length < 1)
            {
                throw new ArgumentOutOfRangeException("gradientStops");
            }

            ID2D1GradientStopCollection gradientStopCollection;
            this.GetHandle<ID2D1RenderTarget>().CreateGradientStopCollection(gradientStops, (uint)gradientStops.Length, D2D1Gamma.Gamma22, D2D1ExtendMode.Clamp, out gradientStopCollection);
            return new D2D1GradientStopCollection(gradientStopCollection);
        }
        public D2D1GradientStopCollection CreateGradientStopCollection(D2D1GradientStop[] gradientStops, D2D1Gamma colorInterpolationGamma, D2D1ExtendMode extendMode)
        {
            if (gradientStops == null)
            {
                throw new ArgumentNullException("gradientStops");
            }

            if (gradientStops.Length < 1)
            {
                throw new ArgumentOutOfRangeException("gradientStops");
            }

            ID2D1GradientStopCollection gradientStopCollection;
            this.GetHandle<ID2D1RenderTarget>().CreateGradientStopCollection(gradientStops, (uint)gradientStops.Length, colorInterpolationGamma, extendMode, out gradientStopCollection);
            return new D2D1GradientStopCollection(gradientStopCollection);
        }