Android の VisualElement レガシ カラー モード
一部のビューには Xamarin.Forms 、従来のカラー モードがあります。 このモードでは、ビューの プロパティが にfalse
設定されている場合IsEnabled
、ビューはユーザーが設定した色を無効状態の既定のネイティブ 色でオーバーライドします。 下位互換性のため、このレガシ カラー モードは、サポートされているビューの既定の動作のままです。
この Android プラットフォーム固有では、この従来のカラー モードが無効になるため、ユーザーがビューに設定した色は、ビューが無効になっている場合でも維持されます。 添付プロパティfalse
を に設定VisualElement.IsLegacyColorModeEnabled
することで XAML で使用されます。
<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 でのみ実行されるように指定します。 名前空間の Xamarin.Forms.PlatformConfiguration.AndroidSpecific
メソッドはVisualElement.SetIsLegacyColorModeEnabled
、レガシ カラー モードを無効にするかどうかを制御するために使用されます。 さらに、 メソッドを VisualElement.GetIsLegacyColorModeEnabled
使用して、レガシ カラー モードが無効になっているかどうかを返すことができます。
その結果、従来のカラー モードを無効にできるため、ユーザーがビューに設定した色は、ビューが無効になっている場合でも残ります。
注意
ビューで を VisualStateGroup
設定すると、レガシ カラー モードは完全に無視されます。 ビジュアル状態の詳細については、「Visual State Manager」を参照してくださいXamarin.Forms。