Хотите ли вы добиться результата, подобного следующему GIF?
Если это так, вы можете изменить стиль следующим образом.
<Style x:Key="FlyoutItemStyle" TargetType="Grid">
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" >
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="Green"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Selected">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="Red"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
Обновление
Я тестирую FlyoutItemStyle
стиль. Disabled
свойства не работают для Gird
. Если вы установите IsEnabled="False"
для Gird
.
FlyoutItem «Панели управления организатора» имеет флаг IsEnabled = «False»
Если вы хотите изменить цвет на зеленый для FlyoutItem
при IsEnabled="False"
, но ваш TargetType="Grid"
в FlyoutItemStyle
. TargetType
не является FlyoutItem
напрямую. Однако, если вы установите TargetType
на FlyoutItem
, FlyoutItem не будет иметь свойства BackgroundColor
.
В этом случае пользователь не сможет нажать на него. Мне нужно использовать это сейчас, потому что> нет флага IsVisible.
FlyoutItem
не имеют IsVisible
, но Grid
имеют это свойство. Вы можете добавить IsVisible="{Binding IsEnabled}"
на вкладке Grid
.
<Grid HeightRequest="{x:OnPlatform Android=50}" Style="{StaticResource FlyoutItemStyle}" IsVisible="{Binding IsEnabled}">
Здесь выполняется сценарий.