DevExpress WPF Area 颜色渐变

啥也不说,直接上代码

public class GradientArea2D: AreaSeries2D{public static readonly DependencyProperty NewAreaColorProperty = DependencyPropertyManager.Register("NewAreaColor",typeof(LinearGradientBrush), typeof(GradientArea2D), new PropertyMetadata(null));public Brush NewAreaColor{get { return (Brush)GetValue(NewAreaColorProperty); }set { SetValue(NewAreaColorProperty, value); }}protected override Color GetPointOriginalColorForCustomDraw(IRefinedSeries refinedSeries, int pointIndex, Color seriesColor){return base.GetPointOriginalColorForCustomDraw(refinedSeries, pointIndex, Color.FromRgb(0,0,0));}protected override AdditionalSeriesGeometryContainer CreateAdditionalGeometry(){return new MyAdditionalAreaSeriesGeometryContainer(this);}}public class MyAdditionalAreaSeriesGeometryContainer: AdditionalSeriesPointGeometryContainer{public MyAdditionalAreaSeriesGeometryContainer(XYSeries series): base(series){}protected override void PopulateChildren(UIElementCollection children, XYSeries series){children.Add(new MyAdditionalAreaSeriesGeometry(series));children.Add(new AdditionalAreaBorderSeriesGeometry(series));base.PopulateChildren(children, series);}}public class MyAdditionalAreaSeriesGeometry: AdditionalAreaSeriesGeometry{public MyAdditionalAreaSeriesGeometry(XYSeries series) : base(series){}protected override void RenderCore(DrawingContext drawingContext, IEnumerable geometryList, Transform transform){foreach (SeriesAdditionalGeometry geometry in geometryList){if (geometry.Clip != null)drawingContext.PushClip(geometry.Clip);Geometry renderGeometry = CalculateRenderGeometry(geometry.Geometries, transform);Brush areaBrush = getColor();drawingContext.DrawGeometry(areaBrush, null, renderGeometry);if (geometry.Clip != null)drawingContext.Pop();}}Brush getColor(){GradientArea2D area2D = Series as GradientArea2D;return area2D.NewAreaColor;}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部