Xamarin.Forms Widok wskaźnika
Jest to kontrolka IndicatorView
, która wyświetla wskaźniki reprezentujące liczbę elementów i bieżącą pozycję w elemencie CarouselView
:
IndicatorView
definiuje następujące właściwości:
Count
, typuint
, liczba wskaźników.HideSingle
, typubool
, wskazuje, czy wskaźnik powinien być ukryty, gdy istnieje tylko jeden. Domyślna wartość totrue
.IndicatorColor
, typuColor
, kolor wskaźników.IndicatorSize
, typudouble
, rozmiar wskaźników. Wartość domyślna to 6.0.IndicatorLayout
, typuLayout<View>
, definiuje klasę układu używaną do renderowaniaIndicatorView
elementu . Ta właściwość jest ustawiana przez Xamarin.Formsprogram i zazwyczaj nie musi być ustawiana przez deweloperów.IndicatorTemplate
, typuDataTemplate
, szablon, który definiuje wygląd każdego wskaźnika.IndicatorsShape
, typuIndicatorShape
, kształt każdego wskaźnika.ItemsSource
, typuIEnumerable
, kolekcja, dla którego będą wyświetlane wskaźniki. Ta właściwość zostanie automatycznie ustawiona po ustawieniuCarouselView.IndicatorView
właściwości.MaximumVisible
, typuint
, maksymalna liczba widocznych wskaźników. Domyślna wartość toint.MaxValue
.Position
, typuint
, aktualnie wybrany indeks wskaźnika. Ta właściwość używaTwoWay
powiązania. Ta właściwość zostanie automatycznie ustawiona po ustawieniuCarouselView.IndicatorView
właściwości.SelectedIndicatorColor
, typuColor
, kolor wskaźnika, który reprezentuje bieżący element w elemencieCarouselView
.
Te właściwości są wspierane przez BindableProperty
obiekty, co oznacza, że mogą być obiektami docelowymi powiązań danych i stylizowanymi.
Tworzenie kontrolki IndicatorView
W poniższym przykładzie pokazano, jak utworzyć wystąpienie elementu IndicatorView
w języku XAML:
<StackLayout>
<CarouselView ItemsSource="{Binding Monkeys}"
IndicatorView="indicatorView">
<CarouselView.ItemTemplate>
<!-- DataTemplate that defines item appearance -->
</CarouselView.ItemTemplate>
</CarouselView>
<IndicatorView x:Name="indicatorView"
IndicatorColor="LightGray"
SelectedIndicatorColor="DarkGray"
HorizontalOptions="Center" />
</StackLayout>
W tym przykładzie element IndicatorView
jest renderowany pod CarouselView
elementem , ze wskaźnikiem dla każdego elementu w elemencie CarouselView
. Obiekt IndicatorView
jest wypełniany danymi, ustawiając CarouselView.IndicatorView
właściwość na IndicatorView
obiekt. Każdy wskaźnik jest jasnoszarym okręgiem, a wskaźnik reprezentujący bieżący element w kolorze ciemnoszarym CarouselView
.
Ważne
CarouselView.IndicatorView
Ustawienie właściwości powoduje IndicatorView.Position
powiązanie właściwości z właściwością CarouselView.Position
i IndicatorView.ItemsSource
powiązanie właściwości z właściwościąCarouselView.ItemsSource
.
Zmienianie kształtu wskaźnika
Klasa IndicatorView
ma IndicatorsShape
właściwość, która określa kształt wskaźników. Tę właściwość można ustawić na jeden z elementów IndicatorShape
członkowskich wyliczenia:
Circle
określa, że kształty wskaźnika będą cykliczne. Jest to wartość domyślnaIndicatorView.IndicatorsShape
właściwości.Square
wskazuje, że kształty wskaźnika będą kwadratowe.
Poniższy przykład przedstawia skonfigurowany do używania IndicatorView
wskaźników kwadratowych:
<IndicatorView x:Name="indicatorView"
IndicatorsShape="Square"
IndicatorColor="LightGray"
SelectedIndicatorColor="DarkGray" />
Zmienianie rozmiaru wskaźnika
Klasa IndicatorView
ma IndicatorSize
właściwość typu double
, która określa rozmiar wskaźników w jednostkach niezależnych od urządzenia. Wartość domyślna tej właściwości to 6.0.
W poniższym przykładzie pokazano skonfigurowane do wyświetlania IndicatorView
większych wskaźników:
<IndicatorView x:Name="indicatorView"
IndicatorSize="18" />
Ogranicz liczbę wyświetlanych wskaźników
Klasa IndicatorView
ma właściwość typu int
, która określa maksymalną MaximumVisible
liczbę widocznych wskaźników.
Poniższy przykład przedstawia skonfigurowany do IndicatorView
wyświetlania maksymalnie sześciu wskaźników:
<IndicatorView x:Name="indicatorView"
MaximumVisible="6" />
Definiowanie wyglądu wskaźnika
Wygląd każdego wskaźnika można zdefiniować, ustawiając IndicatorView.IndicatorTemplate
właściwość na DataTemplate
wartość :
<StackLayout>
<CarouselView ItemsSource="{Binding Monkeys}"
IndicatorView="indicatorView">
<CarouselView.ItemTemplate>
<!-- DataTemplate that defines item appearance -->
</CarouselView.ItemTemplate>
</CarouselView>
<IndicatorView x:Name="indicatorView"
Margin="0,0,0,40"
IndicatorColor="Transparent"
SelectedIndicatorColor="Transparent"
HorizontalOptions="Center">
<IndicatorView.IndicatorTemplate>
<DataTemplate>
<Label Text=""
FontFamily="{OnPlatform iOS=Ionicons, Android=ionicons.ttf#}, Size=12}" />
</DataTemplate>
</IndicatorView.IndicatorTemplate>
</IndicatorView>
</StackLayout>
Elementy określone w definicji DataTemplate
wyglądu każdego wskaźnika. W tym przykładzie każdy wskaźnik jest wskaźnikiem Label
, który wyświetla ikonę czcionki.
Na poniższych zrzutach ekranu przedstawiono wskaźniki renderowane przy użyciu ikony czcionki:
Ustawianie stanów wizualizacji
IndicatorView
Selected
ma stan wizualny, którego można użyć do zainicjowania zmiany wizualizacji na wskaźnik bieżącej pozycji w elemencie IndicatorView
. Typowym przypadkiem VisualState
użycia jest zmiana koloru wskaźnika reprezentującego bieżącą pozycję:
<ContentPage ...>
<ContentPage.Resources>
<Style x:Key="IndicatorLabelStyle"
TargetType="Label">
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="TextColor"
Value="LightGray" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Selected">
<VisualState.Setters>
<Setter Property="TextColor"
Value="Black" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
</ContentPage.Resources>
<StackLayout>
...
<IndicatorView x:Name="indicatorView"
Margin="0,0,0,40"
IndicatorColor="Transparent"
SelectedIndicatorColor="Transparent"
HorizontalOptions="Center">
<IndicatorView.IndicatorTemplate>
<DataTemplate>
<Label Text=""
FontFamily="{OnPlatform iOS=Ionicons, Android=ionicons.ttf#}, Size=12}"
Style="{StaticResource IndicatorLabelStyle}" />
</DataTemplate>
</IndicatorView.IndicatorTemplate>
</IndicatorView>
</StackLayout>
</ContentPage>
W tym przykładzie Selected
stan wizualizacji określa, że wskaźnik reprezentujący bieżącą pozycję będzie miał ustawiony TextColor
na. TextColor
W przeciwnym razie wskaźnik będzie jasnoszary:
Aby uzyskać więcej informacji na temat stanów wizualizacji, zobacz Xamarin.Forms Visual State Manager.