Xamarin.Forms某些视图具有旧版颜色模式。 在此模式下,当视图的属性设置为 false 时 IsEnabled ,视图将覆盖用户为禁用状态的默认本机颜色设置的颜色。 为了向后兼容,此旧版颜色模式仍然是支持视图的默认行为。
false
IsEnabled
此 Android 平台特定的禁用此旧版颜色模式,以便即使禁用视图,用户对视图设置的颜色也会保留。 通过将附加属性设置为 VisualElement.IsLegacyColorModeEnabled false :
VisualElement.IsLegacyColorModeEnabled
<ContentPage ... xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"> <StackLayout> <Button Text="Button" TextColor="Blue" BackgroundColor="Bisque" android:VisualElement.IsLegacyColorModeEnabled="False" /> </StackLayout> </ContentPage> 或者,可以使用 Fluent API 从 C# 使用它: using Xamarin.Forms.PlatformConfiguration; using Xamarin.Forms.PlatformConfiguration.AndroidSpecific; _legacyColorModeDisabledButton.On<Android>().SetIsLegacyColorModeEnabled(false); 该方法 VisualElement.On<Android> 指定此特定于平台的仅在 Android 上运行。 命名空间 VisualElement.SetIsLegacyColorModeEnabled 中 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 的方法用于控制是否禁用旧颜色模式。 此外, VisualElement.GetIsLegacyColorModeEnabled 该方法还可用于返回是否禁用旧颜色模式。 结果是可以禁用旧版颜色模式,以便即使禁用视图,用户对视图设置的颜色也会保持不变: 在视图上设置 VisualStateGroup 时,将完全忽略旧版颜色模式。 有关视觉状态的详细信息,请参阅 Xamarin.Forms Visual State Manager。 PlatformSpecifics (示例) 创建平台特定信息 AndroidSpecific API AndroidSpecific.AppCompat API
或者,可以使用 Fluent API 从 C# 使用它:
using Xamarin.Forms.PlatformConfiguration; using Xamarin.Forms.PlatformConfiguration.AndroidSpecific; _legacyColorModeDisabledButton.On<Android>().SetIsLegacyColorModeEnabled(false); 该方法 VisualElement.On<Android> 指定此特定于平台的仅在 Android 上运行。 命名空间 VisualElement.SetIsLegacyColorModeEnabled 中 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 的方法用于控制是否禁用旧颜色模式。 此外, VisualElement.GetIsLegacyColorModeEnabled 该方法还可用于返回是否禁用旧颜色模式。 结果是可以禁用旧版颜色模式,以便即使禁用视图,用户对视图设置的颜色也会保持不变: 在视图上设置 VisualStateGroup 时,将完全忽略旧版颜色模式。 有关视觉状态的详细信息,请参阅 Xamarin.Forms Visual State Manager。 PlatformSpecifics (示例) 创建平台特定信息 AndroidSpecific API AndroidSpecific.AppCompat API
该方法 VisualElement.On<Android> 指定此特定于平台的仅在 Android 上运行。 命名空间 VisualElement.SetIsLegacyColorModeEnabled 中 Xamarin.Forms.PlatformConfiguration.AndroidSpecific 的方法用于控制是否禁用旧颜色模式。 此外, VisualElement.GetIsLegacyColorModeEnabled 该方法还可用于返回是否禁用旧颜色模式。
VisualElement.On<Android>
VisualElement.SetIsLegacyColorModeEnabled
Xamarin.Forms.PlatformConfiguration.AndroidSpecific
VisualElement.GetIsLegacyColorModeEnabled
结果是可以禁用旧版颜色模式,以便即使禁用视图,用户对视图设置的颜色也会保持不变:
在视图上设置 VisualStateGroup 时,将完全忽略旧版颜色模式。 有关视觉状态的详细信息,请参阅 Xamarin.Forms Visual State Manager。
VisualStateGroup