/// <summary> /// Carga un gradiante circular /// </summary> private RadialGradientBrushModel LoadRadialBrush(MLNode nodeML) { RadialGradientBrushModel radial = new RadialGradientBrushModel(nodeML.Attributes[ComicRepositoryConstants.TagKey].Value, nodeML.Attributes[ComicRepositoryConstants.TagResourceKey].Value); // Carga los datos del gradiante radial.Center = Mediator.CommonRepository.GetPoint(nodeML.Attributes[ComicRepositoryConstants.TagCenter].Value); radial.RadiusX = nodeML.Attributes[ComicRepositoryConstants.TagRadiusX].Value.GetDouble(1); radial.RadiusY = nodeML.Attributes[ComicRepositoryConstants.TagRadiusY].Value.GetDouble(1); radial.Origin = Mediator.CommonRepository.GetPoint(nodeML.Attributes[ComicRepositoryConstants.TagOrigin].Value); radial.SpreadMethod = Mediator.CommonRepository.GetSpreadMethod(nodeML.Attributes[ComicRepositoryConstants.TagSpread].Value); // Asigna los puntos de parada radial.Stops.AddRange(LoadStops(nodeML)); // Devuelve el gradiante return(radial); }
/// <summary> /// Crea una brocha con un gradiante circular /// </summary> private static RadialGradientBrush ConvertRadialBrush(PageModel page, RadialGradientBrushModel brush) { RadialGradientBrush background = new RadialGradientBrush(); // Obtiene la brocha a partir del nombre del recurso if (!string.IsNullOrEmpty(brush.ResourceKey)) { brush = GetBrushDefinition(page, brush.ResourceKey) as RadialGradientBrushModel; } // Si realmente se ha encontrado una brocha if (brush != null) { // Asigna los datos de la brocha background.Center = Convert(brush.Center); background.RadiusX = brush.RadiusX; background.RadiusY = brush.RadiusY; background.GradientOrigin = Convert(brush.Origin); // Asigna los puntos AddGradientStops(background, brush.Stops); } // Devuelve la brocha return(background); }