/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { InitializeComponent(); if (!LiveCharts.IsConfigured) { LiveCharts.Configure(LiveChartsSkiaSharp.DefaultPlatformBuilder); } _core = new GeoMap <SkiaSharpDrawingContext>(this); PointerPressed += OnPointerPressed; PointerMoved += OnPointerMoved; PointerReleased += OnPointerReleased; PointerWheelChanged += OnWheelChanged; PointerExited += OnPointerExited; SizeChanged += GeoMap_SizeChanged; _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core.Update(), true); SetValue(ShapesProperty, Enumerable.Empty <MapShape <SkiaSharpDrawingContext> >()); SetValue(SeriesProperty, Enumerable.Empty <IGeoSeries>()); SetValue(ActiveMapProperty, Maps.GetWorldMap <SkiaSharpDrawingContext>()); SetValue(SyncContextProperty, new object()); Unloaded += GeoMap_Unloaded; }
/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { if (!LiveCharts.IsConfigured) { LiveCharts.Configure(LiveChartsSkiaSharp.DefaultPlatformBuilder); } MouseDown += OnMouseDown; MouseMove += OnMouseMove; MouseUp += OnMouseUp; MouseLeave += OnMouseLeave; MouseWheel += OnMouseWheel; SizeChanged += GeoMap_SizeChanged; _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); SetCurrentValue(ShapesProperty, Enumerable.Empty <MapShape <SkiaSharpDrawingContext> >()); SetCurrentValue(SeriesProperty, Enumerable.Empty <IGeoSeries>()); SetCurrentValue(ActiveMapProperty, Maps.GetWorldMap <SkiaSharpDrawingContext>()); SetCurrentValue(SyncContextProperty, new object()); Unloaded += GeoMap_Unloaded; }
/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { InitializeComponent(); if (!LiveCharts.IsConfigured) { LiveCharts.Configure(LiveChartsSkiaSharp.DefaultPlatformBuilder); } _core = new GeoMap <SkiaSharpDrawingContext>(this); canvas.SkCanvasView.EnableTouchEvents = true; canvas.SkCanvasView.Touch += OnSkCanvasTouched; SizeChanged += GeoMap_SizeChanged; _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); SetValue(ShapesProperty, Enumerable.Empty <IMapElement>()); SetValue(SeriesProperty, Enumerable.Empty <IGeoSeries>()); SetValue(ActiveMapProperty, Maps.GetWorldMap <SkiaSharpDrawingContext>()); SetValue(SyncContextProperty, new object()); }
/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { InitializeComponent(); if (!LiveCharts.IsConfigured) { LiveCharts.Configure(LiveChartsSkiaSharp.DefaultPlatformBuilder); } _core = new GeoMap <SkiaSharpDrawingContext>(this); _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); Background = new SolidColorBrush(new Color(0, 0, 0, 0)); PointerWheelChanged += OnPointerWheelChanged; PointerPressed += OnPointerPressed; PointerMoved += OnPointerMoved; PointerLeave += OnPointerLeave; //Shapes = Enumerable.Empty<MapShape<SkiaSharpDrawingContext>>(); ActiveMap = Maps.GetWorldMap <SkiaSharpDrawingContext>(); SyncContext = new object(); DetachedFromVisualTree += GeoMap_DetachedFromVisualTree; }
/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { InitializeComponent(); if (!LiveCharts.IsConfigured) { LiveCharts.Configure(LiveChartsSkiaSharp.DefaultPlatformBuilder); } _activeMap = Maps.GetWorldMap <SkiaSharpDrawingContext>(); _core = new GeoMap <SkiaSharpDrawingContext>(this); _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); var c = Controls[0].Controls[0]; c.MouseDown += OnMouseDown; c.MouseMove += OnMouseMove; c.MouseUp += OnMouseUp; c.MouseLeave += OnMouseLeave; c.MouseWheel += OnMouseWheel; Resize += GeoMap_Resize; }
/// <summary> /// Called when the control renders. /// </summary> /// <param name="firstRender"></param> /// <returns></returns> /// <exception cref="Exception"></exception> protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) { return; } _core = new GeoMap <SkiaSharpDrawingContext>(this); _shapesObserver = new CollectionDeepObserver <IMapElement>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); _seriesObserver = new CollectionDeepObserver <IGeoSeries>( (object?sender, NotifyCollectionChangedEventArgs e) => _core?.Update(), (object?sender, PropertyChangedEventArgs e) => _core?.Update(), true); // ToDo: Pointer events. //var c = Controls[0].Controls[0]; //c.MouseDown += OnMouseDown; //c.MouseMove += OnMouseMove; //c.MouseUp += OnMouseUp; //c.MouseLeave += OnMouseLeave; //c.MouseWheel += OnMouseWheel; //Resize += GeoMap_Resize; if (_dom is null) { _dom = new DomJsInterop(JS); } var canvasBounds = await _dom.GetBoundingClientRect(_canvasContainer); _canvasWidth = canvasBounds.Width; _canvasHeight = canvasBounds.Height; _core.Update(); if (_motionCanvas is null) { throw new Exception("MotionCanvas not found"); } _jsFlexibleContainer.Resized += OnResized; }