如何更改选定的Flyoutitem背景颜色

时间:2019-09-09 05:15:04

标签: c# xamarin xamarin.forms

如何更改所选FlyOutItem的颜色?假设在下面的屏幕截图中我希望它是蓝色而不是灰色。

我下载了几个样例项目(例如Gastropods)并经历了所有FlyOutItem样式属性(似乎),但无法弄清楚。enter image description here

1 个答案:

答案 0 :(得分:2)

解决方案:

您可以添加Item的样式。

Shell.Resource

<Style x:Key="FloutItemStyle" TargetType="Grid">
    <Setter Property="VisualStateManager.VisualStateGroups">
        <VisualStateGroupList>
            <VisualStateGroup x:Name="CommonStates">
                <VisualState x:Name="Normal" />
                <VisualState x:Name="Selected">
                    <VisualState.Setters>
                        <Setter Property="BackgroundColor" Value="Red"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateGroupList>
    </Setter>
</Style>

并在 Shell.ItemTemplate

中使用它
<Shell.ItemTemplate>
    <DataTemplate >
        <Grid Style="{StaticResource FloutItemStyle}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.2*" />
                <ColumnDefinition Width="0.8*" />
            </Grid.ColumnDefinitions>
            <Image Source="{Binding FlyoutIcon}"
        Margin="5"
        HeightRequest="45" />
            <Label Grid.Column="1"
        Text="{Binding Title}"
        FontAttributes="Italic"
        VerticalTextAlignment="Center" />
        </Grid>
    </DataTemplate>
</Shell.ItemTemplate>