Дело в том, что я хочу передать информацию о том, какое изображение отображается в момент нажатия кнопки.
Как сказал Джейсон, CarouselPage - это просто коллекция ContentPages, Вы можете получить текущую контентную страницу по ContentPage page = carousepages.CurrentPage; Я делаю один пример, который вы можете посмотреть:
<CarouselPage
x:Class="CarouselPageNavigation.MainPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Name="carousepages">
<ContentPage x:Name="redcontentpage">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS, Android" Value="0,40,0,0" />
</OnPlatform>
</ContentPage.Padding>
<StackLayout>
<Label
FontSize="Medium"
HorizontalOptions="Center"
Text="Red" />
<Button
x:Name="btn1"
Clicked="Btn1_Clicked"
Text="get current page" />
<BoxView
x:Name="redbox"
HeightRequest="200"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand"
WidthRequest="200"
Color="Red" />
</StackLayout>
</ContentPage>
<ContentPage x:Name="greencontentpage">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS, Android" Value="0,40,0,0" />
</OnPlatform>
</ContentPage.Padding>
<StackLayout>
<Label
FontSize="Medium"
HorizontalOptions="Center"
Text="Green" />
<Button
x:Name="btn2"
Clicked="Btn1_Clicked"
Text="get current page" />
<BoxView
x:Name="greenbox"
HeightRequest="200"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand"
WidthRequest="200"
Color="Green" />
</StackLayout>
</ContentPage>
<ContentPage x:Name="nluecontentpage">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS, Android" Value="0,40,0,0" />
</OnPlatform>
</ContentPage.Padding>
<StackLayout>
<Label
FontSize="Medium"
HorizontalOptions="Center"
Text="Blue" />
<Button
x:Name="btn3"
Clicked="Btn1_Clicked"
Text="get current page" />
<BoxView
x:Name="bluebox"
HeightRequest="200"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand"
WidthRequest="200"
Color="Blue" />
</StackLayout>
</ContentPage>
Вы можете получить текущий Page BoxView по следующему коду:
private void Btn1_Clicked(object sender, System.EventArgs e)
{
ContentPage page = carousepages.CurrentPage;
StackLayout stack = (StackLayout)page.Content;
BoxView box = (BoxView)stack.Children[2];
}