![](/img/trans.png)
[英]How to disable and enable a click event on a button in Visual Studio C#
[英]How to enable and disable a mouse click event on WPF using button
我嘗試實現可通過使用ThinkGeo繪制地圖的鼠標單擊事件。 當我開始運行代碼時,此功能才處於活動狀態。 我想在地圖上應用一個按鈕,以便可以啟用和禁用地圖上的鼠標單擊事件。 有人可以顯示示例或示例,我認為它需要布爾類型變量對嗎?
private void map_Loaded(object sender, RoutedEventArgs e)
{
Map1.MapUnit = GeographyUnit.Meter;
LayerOverlay myOverlay = new LayerOverlay();
Map1.Overlays.Add(myOverlay);
myOverlay.TileCache = new FileBitmapTileCache(@"..\..\Cache\");
string[] files = System.IO.Directory.GetFiles(@"C:\Users\User\Desktop\DSI REFERENCE\Map Data\Raster");
foreach (string file in files)
{
GeoTiffRasterLayer tiffLayer = new GeoTiffRasterLayer(file);
myOverlay.Layers.Add(tiffLayer);
}
myOverlay.Open();
Map1.CurrentExtent = myOverlay.GetBoundingBox();
InMemoryFeatureLayer inmemoryFeatureLayer = new InMemoryFeatureLayer();
inmemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(new GeoImage(@"C:\Users\User\Downloads\15floors\Icon\Point.png"));
inmemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
LayerOverlay markerOverlay = new LayerOverlay();
markerOverlay.Layers.Add(inmemoryFeatureLayer);
Map1.Overlays.Add("MarkerOverlay", markerOverlay);
Map1.Refresh();
}
private void Map1_MapClick(object sender, MapClickWpfMapEventArgs e)
{
LayerOverlay markerOverlay = (LayerOverlay)Map1.Overlays["MarkerOverlay"];
InMemoryFeatureLayer inmemoryFeatureLayer = markerOverlay.Layers[0] as InMemoryFeatureLayer;
MultipolygonShape buffer = e.WorldLocation.Buffer(350, GeographyUnit.Meter, DistanceUnit.Kilometer);
inmemoryFeatureLayer.InternalFeatures.Add(new Feature(e.WorldLocation));
Map1.Refresh();
}
private void Plot_ButtonClick(object sender, RoutedEventArgs e)
{
InMemoryFeatureLayer inMemoryLayer = (InMemoryFeatureLayer)Map1.FindFeatureLayer("InMemoryFeatureLayer");
inMemoryLayer.Open();
inMemoryLayer.EditTools.BeginTransaction();
inMemoryLayer.EditTools.Delete("MarkerOverlay");
inMemoryLayer.EditTools.CommitTransaction();
inMemoryLayer.Close();
Map1.Refresh(Map1.Overlays["InmemoryOverlay"]);
}
}
無需創建按鈕,如果您不希望地圖控件生成鼠標單擊事件,則只需關閉點擊測試即可:
Map1.IsHitTestVisible = false;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.