public FeatureElement(Feature f, IRenderer renderer) { this.ClipBox = Rectangle2D.Empty; this.pathIsInvalid = true; if (f == null) { throw new ArgumentNullException("f"); } this.feature = new WeakReference(f); if (renderer != null) //if (renderer != null && (f.GetValue(Clusterer.ClusterProperty) == null)) { this.GeoStyle = renderer.GetStyle(f) ?? generateDefaultSyle(f); }//renderer的优先级高于Feature自我的 else { this.GeoStyle = f.Style ?? generateDefaultSyle(f); } f.SetBoundedStyle(this.GeoStyle); if (this.GeoStyle != null) { base.Template = this.GeoStyle.ControlTemplate; } this.Geometry = f.Geometry; }