Bagikan melalui


Mode Warna Warisan VisualElement di Windows

Xamarin.Forms Beberapa tampilan menampilkan mode warna warisan. Dalam mode ini, ketika IsEnabled properti tampilan diatur ke false, tampilan akan mengambil alih warna yang diatur oleh pengguna dengan warna asli default untuk status dinonaktifkan. Untuk kompatibilitas mundur, mode warna warisan ini tetap menjadi perilaku default untuk tampilan yang didukung.

Ini Platform Windows Universal khusus platform menonaktifkan mode warna warisan ini, sehingga warna yang diatur pada tampilan oleh pengguna tetap bahkan ketika tampilan dinonaktifkan. Ini digunakan dalam XAML dengan mengatur VisualElement.IsLegacyColorModeEnabled properti terlampir ke false:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        ...
        <Editor Text="Enter text here"
                TextColor="Blue"
                BackgroundColor="Bisque"
                windows:VisualElement.IsLegacyColorModeEnabled="False" />
        ...
    </StackLayout>
</ContentPage>

Atau, dapat dikonsumsi dari C# menggunakan API fasih:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

_legacyColorModeDisabledEditor.On<Windows>().SetIsLegacyColorModeEnabled(false);

Metode VisualElement.On<Windows> menentukan bahwa khusus platform ini hanya akan berjalan pada Windows. Metode VisualElement.SetIsLegacyColorModeEnabled ini, di Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace, digunakan untuk mengontrol apakah mode warna warisan dinonaktifkan. Selain itu, VisualElement.GetIsLegacyColorModeEnabled metode ini dapat digunakan untuk mengembalikan apakah mode warna warisan dinonaktifkan.

Hasilnya adalah bahwa mode warna warisan dapat dinonaktifkan, sehingga warna yang diatur pada tampilan oleh pengguna tetap bahkan ketika tampilan dinonaktifkan:

Mode warna warisan dinonaktifkan

Catatan

Saat mengatur VisualStateGroup pada tampilan, mode warna warisan sepenuhnya diabaikan. Untuk informasi selengkapnya tentang status visual, lihat Xamarin.Forms Visual State Manager.