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); }
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); }