void flexChart_Tapped(object sender, C1.Xamarin.Forms.Core.C1TappedEventArgs e) { var hitTest = flexChart.HitTest(e.GetPosition(sender as View)); stackHitTest.BindingContext = hitTest; stackData.BindingContext = hitTest; stackSeries.IsVisible = hitTest != null && hitTest.Series != null; stackData.IsVisible = hitTest != null && hitTest.PointIndex != -1; var type = e.PointerDeviceType; }
private void Sunburst_Tapped(object sender, C1.Xamarin.Forms.Core.C1TappedEventArgs e) { Point p = e.GetPosition(sunburst); ChartHitTestInfo hitTestInfo = this.sunburst.HitTest(p); if (hitTestInfo == null || hitTestInfo.Item == null) { return; } _item = ((IChartModel)hitTestInfo.Item); if (_view != null && _view.Parent != null) { sunburst.Children.Remove(_view); } if (hitTestInfo.Item is IChartModel) { _view = ((IChartModel)hitTestInfo.Item).GetUserView(fontSizeRate); _view.BackgroundColor = Color.Transparent; this.sunburst.Children.Add(_view); this.sunburst.RaiseChild(_view); _view.Layout(new Rectangle(_x - _width * sunburst.Scale / 2, _y - _height * sunburst.Scale / 2, _width * sunburst.Scale, _height * sunburst.Scale)); if (_item is Periodic.Group && Periodic.Group.layout != null) { ((Periodic.Group)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale); } if (_item is Periodic.SubGroup && Periodic.SubGroup.layout != null) { ((Periodic.SubGroup)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale); } if (_item is Periodic.Element && Periodic.Element.layout != null) { ((Periodic.Element)_item).SetFontSize(fontSizeRate * (float)sunburst.Scale); } if (_view != null) { C1Sunburst sun = (C1Sunburst)sender; _view.TranslationX = sun.TranslationX; _view.TranslationY = sun.TranslationY; } } }