选择
RadMap控件公开选择功能。它允许用户从每个ShapefileLayer应用的源中选择一个或多个形状。该特性为用户的操作提供了可视化和程序化的反馈。
的以下成员ShapefileLayer类都与选材有关:
SelectionMode: Enum属性,指示将选择什么。它可以接收以下值:
- 没有一个;
- 单身;
- 多个。
SelectedShape(类型的IShape):定义当前选择的形状实例。当启用多重选择时,此值将设置为第一个选定的形状。
SelectedShapes(类型的ObservableCollection < IShape >):读取当前所选形状的集合。当选择是单一的,只有一个形状可以被选择-因此集合将有count = 1。
SelectedShapeStyle(类型的MapShapeStyle):通过提供的StrokeWidth, StrokeColor和FillColor属性定义所选形状的外观。有关MapShapeStyle用法的更多详细信息,请参见形状样式的话题。
下面的代码片段展示了如何做到这一点SelectionMode应用:
< / telerikMap: RadMap >
在哪里源和数据源mapshaperreader的.shp和.dbf文件分别设置为:
var assembly = this.GetType().Assembly;var source = MapSource.FromResource("SDKBrowser.Examples.MapControl.world. "轴马力”,装配);var dataSource = MapSource.FromResource("SDKBrowser.Examples.MapControl.world. "dbf”、装配);this.reader.Source =源;this.reader.DataSource = dataSource;
检查下面的RadMap与几个选定的形状将看起来像:
下面的代码段演示了如何以编程方式选择某个形状。在本例中,使用的ESRI文件包含世界地图,因此所选择的形状是一个国家。该示例使用形状属性来遍历所有可用的形状。
让我们选择/取消选择“France”,例如,点击按钮:
.
下面是事件处理程序:
private void SelectFranceClicked(对象发送者,EventArgs e) {var shape = this.GetItemFromCountryName("France");if (shape != null) {this.mapShapeLayer.SelectedShapes.Add(shape);}} private void DeselectFranceClicked(对象发送者,EventArgs e) {var shape = this.GetItemFromCountryName("France");if (shape != null && this. mapshapelayer . selectedshape . contains (shape)) {this. mapshapelayer . selectedshape . remove (shape);}} private IShape GetItemFromCountryName(string countryName) {foreach (var shape in this.reader.Shapes) {var name = shape. getattribute ("CNTRY_NAME").ToString();if (name == countryName){返回形状;}}返回null;}
结果如下:
的“映射/选择”文件夹中可以找到样例程序化选择示例浏览器应用程序.