Add a ghostControl to your code. It doesn't matter where since the control has 0 width and height (invisible). I used a Button control, but any control that can receive the focus will work (entry, editor, etc). BoxView and some others won't work since they can't get the focus.
<Button x:Name="ghostControl" MinimumWidthRequest="0" WidthRequest="0" MinimumHeightRequest="0" HeightRequest="0" />
Now, the control that's being dragged, needs a PointerEntered callback in addition to its PanUpdated callback.
<BoxView HeightRequest="15" WidthRequest="15" HorizontalOptions="End" Color="Gainsboro" BackgroundColor="White" CornerRadius="7,0,0,0" ToolTipProperties.Text="Click and drag to resize windows" >
<!-- Gesture Recognizer to detect pan gestures -->
<BoxView.GestureRecognizers>
<PanGestureRecognizer PanUpdated="OnPanUpdated" />
<PointerGestureRecognizer PointerEntered="PointerGestureRecognizer_PointerEntered" />
</BoxView.GestureRecognizers>
</BoxView>
The PointerEntered callback is fired when the mouse moves over the BoxView and takes the focus from any control and sends the focus to the ghostControl with a Focus() command.
// Take focus from any any control and send to ghost control
private void PointerGestureRecognizer_PointerEntered(object sender, PointerEventArgs e)
{
ghostControl.Focus();
}
The BoxView can now be dragged and has a responsive screen redraw.