ios - Xamarin.Forms:在 iOS 上启用深色模式时,禁用的条目具有白色 TextColor

标签 ios xamarin xamarin.forms ios-darkmode xamarin.forms.entry

当启用深色模式时,我在 iOS 上的条目的 TextColor 似乎遇到了一些问题。 每当我将 Entry 的启用状态设置为 false 时,TextColor 就会变成白色并且无法更改。 我使用以下简单的代码来重现这一点。

Page.xaml

    <Entry x:Name="TestEntry" />
Page.xaml.cs

    public OnboardingPage()
    {
        InitializeComponent();

        TestEntry.Text = "Testo";
        TestEntry.TextColor = Color.Blue;
        TestEntry.IsEnabled = false;
    }

我目前正在使用最新版本的 Xamarin.Forms。 (4.4.0.991640)

有人知道这里出了什么问题吗?我认为这不是预期的行为..

提前致谢!

最佳答案

与此同时,我找到了解决我的问题所需的方法。

显然,当启用旧颜色管理并且禁用 Entry 时,iOS 上的 EntryRenderer 使用默认颜色。将 Entry 上的 LegacyColorManagement 设置为 False 可解决此问题。

XF 检查传统颜色管理 https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.iOS/Extensions/VisualElementExtensions.cs#L15

XF 检查条目的 TextColor https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.iOS/Renderers/EntryRenderer.cs#L272

我已将以下代码添加到我的 *Page.xaml 中,现在颜色可以正确呈现:

*Page.xaml

<ContentPage xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ...>

<Entry ios:VisualElement.IsLegacyColorModeEnabled="False"
       .../>

关于ios - Xamarin.Forms:在 iOS 上启用深色模式时,禁用的条目具有白色 TextColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60319472/

相关文章:

ios - 使用 RestKit 映射我的对象

xamarin - 如何在 Xamarin Forms 中向文本单元格添加图标

authentication - 从使用来自 WebApi 服务的数据的跨平台移动应用程序进行身份验证

xamarin - Xamarin iOS 渲染器中使用的 "if (Control == null)"部分是什么?

visual-studio - 设置Xamarin.Forms和Visual Studio 2019以与Mac配对

ios - Google Plus iOS SDK 不刷新过期 token

c++ - 相对标题 XCode 4

c# - 将 Xamarin Forms 安卓版移植到黑莓 10

c# - 应用关闭 Xamarin Forms 后丢失数据/文件

ios - 组合条件查询不能正常工作?