Android'de VisualElement Eski Renk Modu
Bazı görünümlerde Xamarin.Forms eski bir renk modu bulunur. Bu modda, görünümün IsEnabled
özelliği olarak false
ayarlandığında, görünüm kullanıcı tarafından ayarlanan renkleri devre dışı durumda varsayılan yerel renklerle geçersiz kılar. Geriye dönük uyumluluk için, bu eski renk modu desteklenen görünümler için varsayılan davranış olarak kalır.
Android platformuna özgü bu eski renk modunu devre dışı bırakır, böylece görünüm devre dışı bırakıldığında bile kullanıcı tarafından bir görünümde ayarlanan renkler kalır. Ekli özelliği false
olarak ayarlanarak VisualElement.IsLegacyColorModeEnabled
XAML'de kullanılır:
<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>
Alternatif olarak, akıcı API kullanılarak C# dilinden de kullanılabilir:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
_legacyColorModeDisabledButton.On<Android>().SetIsLegacyColorModeEnabled(false);
yöntemi, VisualElement.On<Android>
platforma özgü bu uygulamanın yalnızca Android'de çalışacağını belirtir. VisualElement.SetIsLegacyColorModeEnabled
yöntemi, ad alanında Xamarin.Forms.PlatformConfiguration.AndroidSpecific
eski renk modunun devre dışı bırakılıp bırakılmadığını denetlemek için kullanılır. Ayrıca yöntemi, VisualElement.GetIsLegacyColorModeEnabled
eski renk modunun devre dışı bırakılıp bırakılmadığını döndürmek için kullanılabilir.
Sonuç olarak, görünüm devre dışı bırakıldığında bile kullanıcı tarafından bir görünümde ayarlanan renklerin kalması için eski renk modu devre dışı bırakılabilir:
Not
Görünümde ayarlarken VisualStateGroup
eski renk modu tamamen yoksayılır. Görsel durumlar hakkında daha fazla bilgi için bkzXamarin.Forms. Visual State Manager.