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);
     }
 }
Esempio n. 3
0
 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"));
     }
 }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        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);
            }
        }