コード例 #1
0
        public void Invalidate(SKCanvasView skCanvasView, Layout <View> formLayout)
        {
            if (_highlightState == null)
            {
                return;
            }

            View viewToHighlight = _highlightState.HighlightPath.GetView(formLayout.Children, _highlightState.CurrHighlightedViewId);

            _highlightState = null;
            HighlightElement(viewToHighlight, skCanvasView, formLayout);
        }
コード例 #2
0
        public void HighlightElement(View viewToHighlight, SKCanvasView skCanvasView, Layout <View> formLayout)
        {
            IList <View> layoutChildren = formLayout.Children;

            if (_highlightState == null)
            {
                var path = HighlightPath.Create(skCanvasView, layoutChildren, _highlightSettings.StrokeWidth);
                _highlightState = new HighlightState()
                {
                    HighlightPath = path
                };
            }

            HighlightPath highlightPath = _highlightState.HighlightPath;

            int currHighlightViewId = _highlightState.CurrHighlightedViewId;
            int iViewIdToHighlight  = highlightPath.GetViewId(layoutChildren, viewToHighlight);

            if (currHighlightViewId == iViewIdToHighlight)
            {
                return;
            }

            StrokeDash fromDash;

            if (currHighlightViewId != -1)
            {
                fromDash = _highlightState.StrokeDash;
            }
            else
            {
                fromDash = new StrokeDash(highlightPath.GetDashForView(layoutChildren, iViewIdToHighlight));
            }

            _highlightState.CurrHighlightedViewId = iViewIdToHighlight;

            StrokeDash toDash = new StrokeDash(highlightPath.GetDashForView(layoutChildren, viewToHighlight));

            DrawDash(skCanvasView, fromDash, toDash);
        }