Class Style
This abstract class is the root for all styles used for drawing features.
public abstract class Style
- Inheritance
-
Style
- Derived
- Inherited Members
Remarks
If you need to create your own style in the future, we suggest that you first
consider extending an existing style. If you are doing something new, then you can
inherit from this class.
The key method to override is DrawCore. If you want to provide a sample for the
legend, you will also want to extend the DrawSampleCore.
Constructors
Style()
This is the default constructor for the style and should be called by inherited classes.
protected Style()
Remarks
This is the default constructor for the style and should be called by inherited classes.
Properties
Filters
public Collection<string> Filters { get; }
Property Value
FiltersCore
protected virtual Collection<string> FiltersCore { get; }
Property Value
IsActive
This property gets and sets the active status of the style.
public bool IsActive { get; set; }
Property Value
- bool
This property gets the active status of the style.
Remarks
If the style is not active then it will not draw.
Name
This property gets and set the name of the style.
public string Name { get; set; }
Property Value
- string
This property gets the name of the style.
Remarks
This name is not used by the system; it is only for the developer. However, it can be used if you generate your own legend.
RequiredColumnNames
This property gets the collection of fields that are required for the style.
public Collection<string> RequiredColumnNames { get; }
Property Value
- Collection<string>
This property gets the collection of fields that are required for the style.
Remarks
This property gets the collection of fields that are required for the style. These are in addition to any other columns you specify in styles that inherit from this one. For example, if you have use a ValueStyle and it requires a column name for the value comparison, then that column does not need to be in this collection. You only use the RequiredColumnNames for columns you need beyond those required by specific inherited styles.
Methods
CloneDeep()
Create a copy of style using the deep clone process.
public Style CloneDeep()
Returns
- Style
A cloned style.
Remarks
The difference between deep clone and shallow clone is as follows: In shallow cloning, only the object is copied; the objects within it are not. By contrast, deep cloning copies the cloned object as well as all the objects within.
CloneDeepCore()
Create a copy of style using the deep clone process. The default implementation method uses serialization.
protected virtual Style CloneDeepCore()
Returns
- Style
A cloned style.
Remarks
The difference between deep clone and shallow clone is as follows: In shallow cloning, only the object is copied; the objects within it are not. By contrast, deep cloning copies the cloned object as well as all the objects within.
Draw(IEnumerable<BaseShape>, GeoCanvas, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the shapes on the view you provided.
public void Draw(IEnumerable<BaseShape> shapes, GeoCanvas canvas, Collection<SimpleCandidate> labelsInThisLayer, Collection<SimpleCandidate> labelsInAllLayers)
Parameters
shapes
IEnumerable<BaseShape>This parameter represents the shapes you want to draw on the view.
canvas
GeoCanvasThis parameter represents the view you want to draw the shapes on.
labelsInThisLayer
Collection<SimpleCandidate>The labels will be drawn in the current layer only.
labelsInAllLayers
Collection<SimpleCandidate>The labels will be drawn in all layers.
Remarks
This method is the concrete wrapper for the abstract method DrawCore. In this
method, we take the shapes you passed in and draw them on the view you provided.
Each style (based on its properties) may draw each shape differently.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the features, we will throw an ArgumentNullException.
- InvalidOperationException
In the event you attempt to call this method when the GeoCanvas's IsDrawing mode is false, it will throw an InvalidOperationException.
Draw(IEnumerable<Feature>, GeoCanvas, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the features on the view you provided.
public void Draw(IEnumerable<Feature> features, GeoCanvas canvas, Collection<SimpleCandidate> labelsInThisLayer, Collection<SimpleCandidate> labelsInAllLayers)
Parameters
features
IEnumerable<Feature>This parameter represents the features you want to draw on the view.
canvas
GeoCanvasThis parameter represents the view you want to draw the features on.
labelsInThisLayer
Collection<SimpleCandidate>The labels will be drawn in the current layer only.
labelsInAllLayers
Collection<SimpleCandidate>The labels will be drawn in all layers.
Remarks
This method is the concrete wrapper for the abstract method DrawCore. In this
method, we take the features you passed in and draw them on the view you provided.
Each style (based on its properties) may draw each feature differently.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
- ArgumentNullException
If you pass a null as the features, we will throw an ArgumentNullException.
- InvalidOperationException
In the event you attempt to call this method when the GeoCanvas's IsDrawing mode is false, it will throw an InvalidOperationException.
DrawCore(IEnumerable<Feature>, GeoCanvas, Collection<SimpleCandidate>, Collection<SimpleCandidate>)
This method draws the features on the view you provided.
protected abstract void DrawCore(IEnumerable<Feature> features, GeoCanvas canvas, Collection<SimpleCandidate> labelsInThisLayer, Collection<SimpleCandidate> labelsInAllLayers)
Parameters
features
IEnumerable<Feature>This parameter represents the features you want to draw on the view.
canvas
GeoCanvasThis parameter represents the view you want to draw the features on.
labelsInThisLayer
Collection<SimpleCandidate>The labels will be drawn in the current layer only.
labelsInAllLayers
Collection<SimpleCandidate>The labels will be drawn in all layers.
Remarks
This abstract method is called from the concrete public method Draw. In this
method, we take the features you passed in and draw them on the view you provided.
Each style (based on its properties) may draw each feature differently.
When implementing this abstract method, consider each feature and its column data
values. You can use the full power of the GeoCanvas to do the drawing. If you need
column data for a feature, be sure to override the GetRequiredColumnNamesCore and add
the columns you need to the collection. In many of the styles, we add properties to
allow the user to specify which field they need; then, in the GetRequiredColumnNamesCore,
we read that property and add it to the collection.
DrawSample(GeoCanvas)
public void DrawSample(GeoCanvas canvas)
Parameters
canvas
GeoCanvas
DrawSample(GeoCanvas, DrawingRectangleF)
This method draws a sample feature on the view you provided.
public void DrawSample(GeoCanvas canvas, DrawingRectangleF drawingExtent)
Parameters
canvas
GeoCanvasThis parameter represents the view you want to draw the features on.
drawingExtent
DrawingRectangleF
Remarks
This method is the concrete wrapper for the abstract method DrawSampleCore.
In this method we draw a sample style on the view you provided. This is typically
used to display a legend or other sample area.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
Exceptions
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
- InvalidOperationException
In the event you attempt to call this method when the GeoCanvas's IsDrawing mode is false, it will throw an InvalidOperationException.
DrawSampleCore(GeoCanvas, DrawingRectangleF)
This method draws a sample feature on the view you provided.
protected virtual void DrawSampleCore(GeoCanvas canvas, DrawingRectangleF drawingExtent)
Parameters
canvas
GeoCanvasThis parameter represents the view you want to draw the features on.
drawingExtent
DrawingRectangleF
Remarks
This virtual method is called from the concrete public method Draw. In this
method, we draw a sample style on the view you provided. This is typically used to
display a legend or other sample area.
When implementing this virtual method, consider the view size and draw the sample
image appropriately. You should keep in mind that the sample typically shows up on a
legend.
Exceptions
- ArgumentNullException
If you pass a null as the view, we will throw an ArgumentNullException.
- InvalidOperationException
In the event you attempt to call this method when the GeoCanvas's IsDrawing mode is false, it will throw an InvalidOperationException.
DrawWithoutLabeling(IEnumerable<Feature>, GeoCanvas)
public Collection<FeatureLabelingCandidate> DrawWithoutLabeling(IEnumerable<Feature> features, GeoCanvas canvas)
Parameters
features
IEnumerable<Feature>canvas
GeoCanvas
Returns
DrawWithoutLabelingCore(IEnumerable<Feature>, GeoCanvas)
protected virtual Collection<FeatureLabelingCandidate> DrawWithoutLabelingCore(IEnumerable<Feature> features, GeoCanvas canvas)
Parameters
features
IEnumerable<Feature>canvas
GeoCanvas
Returns
GetRequiredColumnNames()
This method returns the column data for each feature that is required for the style to properly draw.
public Collection<string> GetRequiredColumnNames()
Returns
- Collection<string>
This method returns a collection of column names that the style needs.
Remarks
This method is the concrete wrapper for the abstract method
GetRequiredColumnNamesCore. In this method, we return the column names that are
required for the style to draw the feature properly. For example, if you have a
style that colors areas blue when a certain column value is over 100, then you need
to be sure you include that column name. This will ensure that the column data is
returned to you in the feature when it is ready to draw.
In many of the styles, we add properties to allow the user to specify which field
they need; then, in the GetRequiredColumnNamesCore we read that property and add it
to the collection.
As this is a concrete public method that wraps a Core method, we reserve the right
to add events and other logic to pre- or post-process data returned by the Core version
of the method. In this way, we leave our framework open on our end, but also allow you
the developer to extend our logic to suit your needs. If you have questions about this,
please contact our support team as we would be happy to work with you on extending our
framework.
GetRequiredColumnNamesCore()
This method returns the column data for each feature that is required for the style to properly draw.
protected virtual Collection<string> GetRequiredColumnNamesCore()
Returns
- Collection<string>
This method returns a collection of column names that the style needs.
Remarks
This abstract method is called from the concrete public method
GetRequiredFieldNames. In this method, we return the column names that are required for
the style to draw the feature properly. For example, if you have a style that colors
areas blue when a certain column value is over 100, then you need to be sure you include
that column name. This will ensure that the column data is returned to you in the
feature when it is ready to draw.
In many of the styles, we add properties to allow the user to specify which field they
need; then, in the GetRequiredColumnNamesCore we read that property and add it to the
collection.
LoadStyle(Stream)
public static Style LoadStyle(Stream styleStream)
Parameters
styleStream
Stream
Returns
LoadStyle(Uri)
public static Style LoadStyle(Uri styleUri)
Parameters
styleUri
Uri
Returns
SaveStyle(Stream)
public void SaveStyle(Stream stream)
Parameters
stream
Stream
SaveStyle(string)
public void SaveStyle(string filePathName)
Parameters
filePathName
string