Articles in this section
Category / Section

How to create a SegmentedControl with custom view

1 min read

A SegmentedControl provides support to add any custom view as their segment by populating collections of custom views as ItemsSource.

 

The following code explains how to add a collection of image views as segmented items. 

 

ViewModel:

public class ViewModel
{
        public ObservableCollection<View> CustomViews { get; set; }
         string fontfamily = "FontAwesome5Pro-Regular";
        public ViewModel()
        {
            CustomViews = new ObservableCollection<View>();
            Image photo = new Image();
            Image video = new Image();
            Image music = new Image();
 
photo.Source = new FontImageSource() { FontFamily = fontfamily, Glyph = "\uf1c5",  Size = 24, Color = Color.Black, };
video.Source = new FontImageSource() { FontFamily = fontfamily, Glyph = "\uf1c8", Size = 24, Color = Color.Black, };
music.Source = new FontImageSource() { FontFamily = fontfamily, Glyph = "\uf1c3", Size = 24, Color = Color.Black, };

            CustomViews.Add(photo);
            CustomViews.Add(video);
            CustomViews.Add(music);
        }
}

 

XAML:

<sfbutton:SfSegmentedControl
    HeightRequest="40"
    HorizontalOptions="Center"
    VerticalOptions="Center"
    x:Name="segmentedControl"
    VisibleSegmentsCount="3"
    Color="Transparent"
    CornerRadius="10"
    SelectedIndex="1”
    ItemsSource="{Binding CustomViews}">
    
</sfbutton:SfSegmentedControl>

 

You can download the runnable sample by clicking here.

 

Output:

 

Figure: Custom images added to segmented control.

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied