Faced such a problem, if you use ImageButton together with VisualStateManager and click on it, and then slide your finger outside of the control and release, then the state is not reset to Normal.
Does anyone know how to get around this problem?
Here's an example of the ImageButton style:
<Style x:Key="ProductButton" TargetType="ImageButton">
<Setter Property="HeightRequest" Value="70"/>
<Setter Property="WidthRequest" Value="210"/>
<Setter Property="Aspect" Value="Fill"/>
<Setter Property="CornerRadius" Value="4"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="Opacity" Value="1"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Pressed">
<VisualState.Setters>
<Setter Property="Opacity" Value="0.8"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
I find one workround that using platform effect that triggers the released event when the touch up occurs outside the Imagebutton.
Create effect in the .NET Standard library(shared code).
Implementing SpecialButtonEffect in ios:
consuming the effect in xaml.