自定义指标视图中所选项目的 UI .NET Maui

问题描述 投票:0回答:1

我想使用数据模板在指标视图中制作所选项目的 UI。 对于所选项目,指示器视图应拉长,其余部分应为球形。 用户界面如下:

elongated view for selected Item

这在 .net Maui 中可能吗

.net xaml xamarin.forms xamarin.android maui
1个回答
0
投票

是的,您可以使用

Frame
VisualState
来实现:

<ContentPage ...>
    <ContentPage.Resources>
        <Style x:Key="IndicatorFrameStyle"
           TargetType="Frame">
            <Setter Property="VisualStateManager.VisualStateGroups">
                <VisualStateGroupList>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState x:Name="Normal">
                            <VisualState.Setters>
                                <Setter Property="BackgroundColor"
                                    Value="LightGray" />
                            </VisualState.Setters>
                        </VisualState>
                        <VisualState x:Name="Selected">
                            <VisualState.Setters>
                                <Setter Property="BackgroundColor"
                                    Value="#FF000F" />
                                <Setter Property="WidthRequest"
                                    Value="45" />
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateGroupList>
            </Setter>
        </Style>
    </ContentPage.Resources>
    <StackLayout Margin="10">
        ...
        <IndicatorView x:Name="indicatorView"
                   Margin="0,0,0,40"
                   IndicatorColor="Transparent"
                   SelectedIndicatorColor="Transparent"
                   HorizontalOptions="Center">
            <IndicatorView.IndicatorTemplate>
                <DataTemplate>
                    <Frame Margin="10"
                       CornerRadius="50"
                       HeightRequest="20"
                       WidthRequest="20"
                       Style="{StaticResource IndicatorFrameStyle}"/>
                </DataTemplate>
            </IndicatorView.IndicatorTemplate>
        </IndicatorView>
    </StackLayout>
</ContentPage>

这是效果

© www.soinside.com 2019 - 2024. All rights reserved.