ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Windows; namespace CombiningOverlays { /// <summary> /// Interaction logic for App.xaml /// </summary> public partial class App : Application { } }
using System; using System.Globalization; using System.Threading; using System.Windows; using ThinkGeo.MapSuite.Core; using ThinkGeo.MapSuite.WpfDesktopEdition; namespace DelayDrawing { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { private ShapeFileFeatureLayer delayRefreshLayer; public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { // Initialize map control wpfMap.CurrentExtent = new RectangleShape(-130.5615234375, 63.193359375, -44.0771484375, 11.337890625); wpfMap.Overlays.Add(new WorldMapKitWmsWpfOverlay()); LayerOverlay layerOverlay = new LayerOverlay(); wpfMap.Overlays.Add("layerOverlay", layerOverlay); delayRefreshLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\USStates.shp"); delayRefreshLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.GetRandomGeoColor(RandomColorType.All), GeoColor.GetRandomGeoColor(RandomColorType.All)); delayRefreshLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add("layer", delayRefreshLayer); } private void btnRefresh_Click(object sender, RoutedEventArgs e) { TimeSpan delayTime = TimeSpan.Zero; if ((bool)ckbDelayDrawing.IsChecked) { // Calculate the delay time delayTime = new TimeSpan(0, 0, 0, cmbDelayTime.SelectedIndex + 1, 0); // Show a timer prgress bar DoProgressBarAnimation(); } // Change the style of the layer after refresh delayRefreshLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.GetRandomGeoColor(RandomColorType.All), GeoColor.GetRandomGeoColor(RandomColorType.All)); wpfMap.Refresh(delayTime); } private void DoProgressBarAnimation() { double totalMilliseconds = new TimeSpan(0, 0, cmbDelayTime.SelectedIndex + 1).TotalMilliseconds; Thread delayTimeThread = new Thread(() => { int secondsConter = 0; while (secondsConter < totalMilliseconds) { secondsConter++; TimeSpan currentTime = TimeSpan.FromMilliseconds(totalMilliseconds - secondsConter); this.Dispatcher.BeginInvoke(new Action(() => { string[] tempTime = currentTime.ToString(@"ss\:fff").Split(':'); txtDelayTime.Text = String.Format(CultureInfo.InvariantCulture, @"{0} Seconds, {1} MilliSeconds", tempTime[0], tempTime[1]); TimeProgressBar.Value = secondsConter / totalMilliseconds * 100; })); Thread.Sleep(1); } }); delayTimeThread.Start(); } } }