private void XySegmentDraggingBase_OnDragStart(object sender, ChartDragStartEventArgs e) { e.Cancel = !(ReferenceEquals(e.BaseXValue, "2013") || ReferenceEquals(e.BaseXValue, "2014") || ReferenceEquals(e.BaseXValue, "2015") || ReferenceEquals(e.BaseXValue, "2016")); }
protected void RaiseDragStart(ChartDragStartEventArgs args) { if (DragStart != null) { DragStart(this, args); } }
private void XySegmentDraggingBase_OnDragStart(object sender, ChartDragStartEventArgs e) { if (AnalyticsInfo.VersionInfo.DeviceFamily != "Windows.Mobile") { e.Cancel = !(ReferenceEquals(e.BaseXValue, "2009") || ReferenceEquals(e.BaseXValue, "2010") || ReferenceEquals(e.BaseXValue, "2011") || ReferenceEquals(e.BaseXValue, "2012")); } else { e.Cancel = !(ReferenceEquals(e.BaseXValue, "2011") || ReferenceEquals(e.BaseXValue, "2012")); } }
internal override void ActivateDragging(Point mousePos, object element) { #if NETFX_CORE Focus(FocusState.Keyboard); #endif KeyDown += CoreWindow_KeyDown; double x, y, stackedValue; FindNearestChartPoint(mousePos, out x, out y, out stackedValue); delta = 0; SegmentIndex = (int)(IsIndexed || ActualXValues is IList <string>?x : ((IList <double>)ActualXValues).IndexOf(x)); if (SegmentIndex < 0) { return; } var dragEventArgs = new ChartDragStartEventArgs { BaseXValue = GetActualXValue(SegmentIndex) }; if (EmptyPointIndexes != null) { var emptyPointIndex = EmptyPointIndexes[0]; for (var i = 0; i < emptyPointIndex.Count; i++) { if (SegmentIndex == emptyPointIndex[i]) { dragEventArgs.EmptyPoint = true; break; } } } RaiseDragStart(dragEventArgs); if (dragEventArgs.Cancel) { ResetDraggingElements("Cancel", true); SegmentIndex = -1; return; } var eumerator = Area.Behaviors.OfType <ChartZoomPanBehavior>(); foreach (var behavior in eumerator) { behavior.InternalEnablePanning = false; behavior.InternalEnableSelectionZooming = false; } }
private void ActivateDragging(Point mousePos, object element) { try { if (previewRect != null) { return; } var rectangle = element as Rectangle; if (rectangle == null || !EnableSegmentDragging) { return; } var rangeColumnSegment = rectangle.Tag as RangeColumnSegment; if (rangeColumnSegment == null) { return; } initialHeight = Canvas.GetTop(rectangle); var brush = rectangle.Fill as SolidColorBrush; previewRect = new Rectangle { Fill = brush != null ? new SolidColorBrush( Color.FromArgb( brush.Color.A, (byte)(brush.Color.R * 0.6), (byte)(brush.Color.G * 0.6), (byte)(brush.Color.B * 0.6))) : rectangle.Fill, Opacity = 0.5, Stroke = rectangle.Stroke, StrokeThickness = rectangle.StrokeThickness }; previewRect.SetValue(Canvas.LeftProperty, Canvas.GetLeft(rectangle)); previewRect.SetValue(Canvas.TopProperty, initialHeight); previewRect.Height = rectangle.ActualHeight; previewRect.Width = rectangle.ActualWidth; SeriesPanel.Children.Add(previewRect); SegmentIndex = Segments.IndexOf(rectangle.Tag as ChartSegment); draggingMode = GetSegmentMousePosition(rangeColumnSegment, mousePos); selectedSegment = rangeColumnSegment; initialHeight = IsActualTransposed ? mousePos.X : mousePos.Y; initialValue = Area.PointToValue(ActualYAxis, mousePos); var dragEventArgs = new ChartDragStartEventArgs { BaseXValue = GetActualXValue(SegmentIndex) }; RaiseDragStart(dragEventArgs); if (dragEventArgs.Cancel) { ResetDraggingElements("Cancel", true); } #if NETFX_CORE Focus(FocusState.Keyboard); #endif UnHoldPanning(false); } catch { ResetDraggingElements("Exception", true); } }