Events in .NET MAUI Effects View (SfEffectsView)
28 Jul 202618 minutes to read
This section provides information about the events available in the .NET MAUI Effects View control. Events are typically subscribed in the page constructor or in code-behind, and are raised on the UI thread.
The following events are available in the Effects View control:
- AnimationCompleted
- SelectionChanged
- LongPressed
- TouchDown
- TouchUp
The Effects View exposes events that fire when the user interacts with the view or when an animation completes.
Prerequisites
Before using the SfEffectsView, ensure the following NuGet package is installed in your .NET MAUI project:
Syncfusion.Maui.Core
For a step-by-step setup, refer to the Getting Started documentation.
AnimationCompleted event
The AnimationCompleted event fires when an effect’s animation has finished.
- When the effect is triggered by direct user interaction, the event fires on touch up.
- When the effect is applied programmatically (for example, with
ApplyEffects), the event fires immediately on completion.
NOTE
The
AnimationCompletedevent is not raised for theSelectioneffect.
<syncEffectsView:SfEffectsView x:Name="effectsView"
HorizontalOptions="Center"
VerticalOptions="Center"
TouchDownEffects="Ripple"
AnimationCompleted="OnEffectsViewAnimationCompleted">
<Grid Padding="12"
WidthRequest="350"
HeightRequest="150"
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.Background>
<LinearGradientBrush EndPoint="1,1">
<GradientStop Color="#FF6B6B" Offset="0.0" />
<GradientStop Color="#4ECDC4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</syncEffectsView:SfEffectsView>var grid = new Grid
{
Padding = new Thickness(12),
WidthRequest = 350,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Background = new LinearGradientBrush
{
EndPoint = new Point(1, 1),
GradientStops = new GradientStopCollection
{
new GradientStop(Color.FromArgb("#FF6B6B"), 0.0f),
new GradientStop(Color.FromArgb("#4ECDC4"), 1.0f)
}
}
};
var effectsView = new SfEffectsView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
TouchDownEffects = SfEffects.Ripple,
Content = grid
};
effectsView.AnimationCompleted += OnEffectsViewAnimationCompleted;
this.Content = effectsView;The AnimationCompleted event can be handled in C# as follows:
void OnEffectsViewAnimationCompleted(object sender, EventArgs e)
{
// Handle the animation completion here.
}SelectionChanged event
The SelectionChanged event fires when the view’s IsSelected state changes.
It fires both when the Selection effect is triggered by user interaction and when the IsSelected property is changed in code.
<syncEffectsView:SfEffectsView x:Name="effectsView"
HorizontalOptions="Center"
VerticalOptions="Center"
LongPressEffects="Selection"
TouchDownEffects="None"
TouchUpEffects="None"
SelectionChanged="OnEffectsViewSelectionChanged">
<Grid Padding="12"
WidthRequest="350"
HeightRequest="150"
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.Background>
<LinearGradientBrush EndPoint="1,1">
<GradientStop Color="#FF6B6B" Offset="0.0" />
<GradientStop Color="#4ECDC4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</syncEffectsView:SfEffectsView>var grid = new Grid
{
Padding = new Thickness(12),
WidthRequest = 350,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Background = new LinearGradientBrush
{
EndPoint = new Point(1, 1),
GradientStops = new GradientStopCollection
{
new GradientStop(Color.FromArgb("#FF6B6B"), 0.0f),
new GradientStop(Color.FromArgb("#4ECDC4"), 1.0f)
}
}
};
var effectsView = new SfEffectsView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
LongPressEffects = SfEffects.Selection,
TouchDownEffects = SfEffects.None,
TouchUpEffects = SfEffects.None,
Content = grid
};
effectsView.SelectionChanged += OnEffectsViewSelectionChanged;
this.Content = effectsView;The SelectionChanged event can be handled in C# as follows:
void OnEffectsViewSelectionChanged(object sender, EventArgs e)
{
var view = (SfEffectsView)sender;
bool isNowSelected = view.IsSelected;
// React to the new selection state here.
}LongPressed event
The LongPressed event fires when the user presses and holds the view for the platform-defined long-press duration.
<syncEffectsView:SfEffectsView x:Name="effectsView"
HorizontalOptions="Center"
VerticalOptions="Center"
TouchDownEffects="Ripple"
TouchUpEffects="Scale"
LongPressed="OnEffectsViewLongPressed">
<Grid Padding="12"
WidthRequest="350"
HeightRequest="150"
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.Background>
<LinearGradientBrush EndPoint="1,1">
<GradientStop Color="#FF6B6B" Offset="0.0" />
<GradientStop Color="#4ECDC4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</syncEffectsView:SfEffectsView>var grid = new Grid
{
Padding = new Thickness(12),
WidthRequest = 350,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Background = new LinearGradientBrush
{
EndPoint = new Point(1, 1),
GradientStops = new GradientStopCollection
{
new GradientStop(Color.FromArgb("#FF6B6B"), 0.0f),
new GradientStop(Color.FromArgb("#4ECDC4"), 1.0f)
}
}
};
var effectsView = new SfEffectsView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
TouchDownEffects = SfEffects.Ripple,
TouchUpEffects = SfEffects.Scale,
Content = grid
};
effectsView.LongPressed += OnEffectsViewLongPressed;
this.Content = effectsView;The LongPressed event can be handled in C# as follows:
void OnEffectsViewLongPressed(object sender, EventArgs e)
{
// Handle the long-press here.
}TouchDown event
The TouchDown event fires when the user presses the view.
<syncEffectsView:SfEffectsView x:Name="effectsView"
HorizontalOptions="Center"
VerticalOptions="Center"
TouchDownEffects="Ripple"
TouchDown="OnEffectsViewTouchDown">
<Grid Padding="12"
WidthRequest="350"
HeightRequest="150"
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.Background>
<LinearGradientBrush EndPoint="1,1">
<GradientStop Color="#FF6B6B" Offset="0.0" />
<GradientStop Color="#4ECDC4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</syncEffectsView:SfEffectsView>var grid = new Grid
{
Padding = new Thickness(12),
WidthRequest = 350,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Background = new LinearGradientBrush
{
EndPoint = new Point(1, 1),
GradientStops = new GradientStopCollection
{
new GradientStop(Color.FromArgb("#FF6B6B"), 0.0f),
new GradientStop(Color.FromArgb("#4ECDC4"), 1.0f)
}
}
};
var effectsView = new SfEffectsView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
TouchDownEffects = SfEffects.Ripple,
Content = grid
};
effectsView.TouchDown += OnEffectsViewTouchDown;
this.Content = effectsView;The TouchDown event can be handled in C# as follows:
void OnEffectsViewTouchDown(object sender, EventArgs e)
{
// Handle the touch-down here.
}TouchUp event
The TouchUp event fires when the user releases the press.
<syncEffectsView:SfEffectsView x:Name="effectsView"
HorizontalOptions="Center"
VerticalOptions="Center"
TouchUpEffects="Scale"
TouchUp="OnEffectsViewTouchUp">
<Grid Padding="12"
WidthRequest="350"
HeightRequest="150"
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.Background>
<LinearGradientBrush EndPoint="1,1">
<GradientStop Color="#FF6B6B" Offset="0.0" />
<GradientStop Color="#4ECDC4" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</syncEffectsView:SfEffectsView>var grid = new Grid
{
Padding = new Thickness(12),
WidthRequest = 350,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Background = new LinearGradientBrush
{
EndPoint = new Point(1, 1),
GradientStops = new GradientStopCollection
{
new GradientStop(Color.FromArgb("#FF6B6B"), 0.0f),
new GradientStop(Color.FromArgb("#4ECDC4"), 1.0f)
}
}
};
var effectsView = new SfEffectsView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
TouchUpEffects = SfEffects.Scale,
Content = grid
};
effectsView.TouchUp += OnEffectsViewTouchUp;
this.Content = effectsView;The TouchUp event can be handled in C# as follows:
void OnEffectsViewTouchUp(object sender, EventArgs e)
{
// Handle the touch-up here.
}