public static void Run() { // ExStart:1 // The path to the documents directory. string dataDir = RunExamples.GetDataDir_WorkingWithGradient(); // Create new XPS Document XpsDocument doc = new XpsDocument(); // Initialize List of XpsGradentStop List <XpsGradientStop> stops = new List <XpsGradientStop>(); // Add Colors to Gradient stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 142, 4), 0f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 202, 0), 0.144531f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 250, 0), 0.264648f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), 0.414063f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(233, 0, 255), 0.544922f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(107, 27, 190), 0.694336f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(63, 0, 255), 0.844727f)); stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 199, 80), 1f)); // Create new path by defining geometery in abbreviation form XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100")); path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f); path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 10f), new PointF(228f, 100f)); ((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops); // Save resultant XPS document doc.Save(dataDir + "AddLinearGradient_out.xps"); // ExEnd:1 }