Linear Arrangement in .NET MAUI Carousel
4 Aug 20264 minutes to read
Prerequisites
Before using the SfCarousel, ensure the following NuGet package is installed in your .NET MAUI project:
Syncfusion.Maui.Carousel
For step-by-step setup, refer to the Getting Started documentation.
ViewMode
Set ViewMode to Linear to display the carousel items in a stacked linear layout. When not set, the default value is Default, which places a single item in the center of the view.
The following example shows how to configure SfCarousel in Linear view mode with a custom item template.
<carousel:SfCarousel x:Name="carousel"
ItemHeight="170"
ItemWidth="270"
ItemsSource="{Binding ImageCollection}"
ViewMode="Linear">
<carousel:SfCarousel.BindingContext>
<local:CarouselViewModel/>
</carousel:SfCarousel.BindingContext>
<carousel:SfCarousel.ItemTemplate>
<DataTemplate >
<Image Source="{Binding Image}" Aspect="AspectFit"/>
</DataTemplate>
</carousel:SfCarousel.ItemTemplate>
</carousel:SfCarousel>CarouselViewModel carouselViewModel = new CarouselViewModel();
SfCarousel carousel = new SfCarousel()
{
ItemHeight = 170,
ItemWidth = 270,
ViewMode = ViewMode.Linear,
BindingContext = carouselViewModel,
ItemsSource = carouselViewModel.ImageCollection,
ItemTemplate = new DataTemplate(() =>
{
var image = new Image();
image.SetBinding(Image.SourceProperty, "Image");
return image;
}),
};// Model
public class CarouselModel
{
public CarouselModel(string imageString)
{
Image = imageString;
}
private string _image;
public string Image
{
get { return _image; }
set { _image = value; }
}
}
//View Model
public class CarouselViewModel
{
public CarouselViewModel()
{
ImageCollection.Add(new CarouselModel("carousel_person1.png"));
ImageCollection.Add(new CarouselModel("carousel_person2.png"));
ImageCollection.Add(new CarouselModel("carousel_person3.png"));
ImageCollection.Add(new CarouselModel("carousel_person4.png"));
ImageCollection.Add(new CarouselModel("carousel_person5.png"));
}
private List<CarouselModel> imageCollection = new List<CarouselModel>();
public List<CarouselModel> ImageCollection
{
get { return imageCollection; }
set { imageCollection = value; }
}
}The following image shows the carousel items arranged in a stacked linear layout.
