User Tools

Site Tools


source_code_wpfdesktopeditionsample_delaydrawing.zip

Source Code WpfDesktopEditionSample DelayDrawing.zip

App.xaml.cs

 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  
     {  
     }  
 }  
 

MainWindow.xaml.cs

 
 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();  
         }  
     }  
 }  
 
 
source_code_wpfdesktopeditionsample_delaydrawing.zip.txt · Last modified: 2015/09/09 03:38 by admin