SuperMap iClient for Silverlight开发系列之自定义面风格
SuperMap.Web程序集中提供了点、线、面风格,还提供了默认的风格和预定义的五种点的样式等,如果已经提供的Feature风格不能满足用户的需求,那么也可以自己进行扩展来实现,可以从Style继承,也可以从Style的子类MarkerStyle、LineStyle、FillStyle继承,实现父类的ControlTemplate。
下面就自定义一个面的风格:
<Grid.Resources>
<icCore:FillStyle x:Name="myCustomFillStyle" >
<icCore:FillStyle.ControlTemplate >
<ControlTemplate>
<Grid>
<Path x:Name="Element" StrokeThickness="1" Stroke="Black">
<Path.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,4" MappingMode="Absolute" SpreadMethod="Repeat">
<GradientStop Color="Transparent" Offset="0.8" />
<GradientStop Color="Black" Offset="0.8" />
</LinearGradientBrush>
</Path.Fill>
</Path>
</Grid>
</ControlTemplate>
</icCore:FillStyle.ControlTemplate>
</icCore:FillStyle>
</Grid.Resources>
在C#代码中直接用就可以了:
feature = new Feature();
feature.Geometry = new GeoRegion
{
Parts = new ObservableCollection<Point2DCollection>
{
new Point2DCollection()
{
new Point2D(0,0),
new Point2D(10000000,0),
new Point2D(10000000,10000000),
new Point2D(0,10000000),
new Point2D(0,0)
},
new Point2DCollection()
{
new Point2D(-10000000,0),
new Point2D(0,-10000000),
new Point2D(-10000000,-10000000),
new Point2D(-10000000,0)
}
}
};
feature.Style = myCustomFillStyle;
效果(黑色的面就是想要的效果):

浙公网安备 33010602011771号