示例#1
0
 public void Initialize(SelectCanvas canvas)
 {
     _canvas = canvas;
 }
示例#2
0
        private void Load()
        {
            this.MouseRightButtonDown += MainWindow_MouseRightButtonDown;


            mySelectCanvas = new SelectCanvas(this.canvas);
            mySelectCanvas.Enable(true);
            //this.SelectCanvas = canvas;
            //SimpleIoc.Default.Register(() => canvas.SelSet);


            //canvas.RegionHitTestAction += canvas_RegionHitTestAction;
            //canvas.PointHitTestAction += canvas_PointHitTestActionWithMultiSelected;


            mySelectCanvas.SelSet.CollectionChanged += (o, e1) =>
            {
                if (e1.Action == NotifyCollectionChangedAction.Remove)
                {
                    var list = e1.OldItems.OfType <Prov>().ToList();
                    foreach (var prov in list)
                    {
                        if (prov.IsLake || prov.IsSea || prov.IsWaste)
                        {
                            continue;
                        }

                        if (prov.Visual != null)
                        {
                            prov.Visual.Opacity = 1;
                        }
                    }
                }

                else if (e1.Action == NotifyCollectionChangedAction.Add)
                {
                    var list = e1.NewItems.OfType <Prov>().ToList();
                    foreach (var prov in list)
                    {
                        if (prov.IsLake || prov.IsSea || prov.IsWaste)
                        {
                            continue;
                        }

                        if (prov.Visual != null)
                        {
                            prov.Visual.Opacity = 0.4;
                        }
                    }
                }
            };

            var task = Task.Factory.StartNew(() =>
            {
                try
                {
                    var vm = SimpleIoc.Default.GetInstance <MainViewModel>();

                    var provs = LoadProvs();
                    LoadProvConfig(provs);
                    Logic.SetWater(provs);

                    var countries = Logic.LoadCountryColorDict1();
                    vm.Countries  = countries;

                    vm.Provs = provs.OrderBy(v => v.Id).ToList();
                }
                catch (Exception ex)
                {
                    Application.Current.GetLocator().Main.log.Error(ex.Message);
                }
            });

            task.ContinueWith(v =>
            {
                //Draw
                this.Dispatcher.Invoke(() =>
                {
                    try
                    {
                        //MyVisualHost1.Init();
                        this.MyVisualHost1.Init(MapColorModes.Country);

                        var vm     = SimpleIoc.Default.GetInstance <MainViewModel>();
                        vm.Percent = 100;
                        vm.Write   = "";
                    }
                    catch (Exception ex)
                    {
                        Application.Current.GetLocator().Main.log.Error(ex.Message);
                    }
                });
            });
        }