Я хочу, чтобы цвет текста кнопки был одинаковым как на iOS, так и на Android. Поэтому я думал, что просто установил свойство TextColor в коде цвет, который мне нужен. В iOS цвет отключенного текста по-прежнему остается серым (что то, что я хочу), однако на Android цвет отключенного текста совпадает с цветом включенного текста. Как сделать цвет отключенного текста на Android-сером (или его по умолчанию для отключенной кнопки)? ThanksКнопка Xamarin Forms TextColor ведет себя по-разному на Android, чем iOS
ответ
Это поведение по умолчанию в Xamarin.Forms. Чтобы обойти это, и достичь пользовательского цвета, вы можете:
- Использование триггеров для изменения цвета при переходе из разрешающего инвалидов и наоборот
- вручную установить цвет при включении и отключении кнопки
- используйте специальный рендерер
Поскольку триггеры являются наиболее простым и последовательным способом достижения того, что вы хотите, я только обложу это. Вы можете увидеть xamarin docs для получения дополнительной информации о настраиваемых средствах визуализации.
С помощью триггеров вы можете динамически изменять цвет шрифта до серого, когда он не включен. Дополнительную информацию о триггерах см. В разделе docs.
<Button Text="I am a Button">
<Button.Triggers>
<Trigger TargetType="Button"
Property="IsEnabled" Value="true">
<Setter Property="TextColor" Value="Red" />
<!-- red is the desired color when the button is enabled.-->
</Trigger>
<Trigger TargetType="Button"
Property="IsEnabled" Value="false">
<Setter Property="TextColor" Value="Gray" />
<!-- gray is the desired color when the button is disabled.-->
</Trigger>
</Button.Triggers>
</Button>
Это отлично поработало. Большое спасибо. –
его не работает .. –
его не работает для меня также. Любое обновление? – Sudha
Если выше не работает для вас, попробуйте установить this workaround. Он использует собственный рендерер и NSAttributedString
для настройки заголовка в отключенном состоянии
Использовать собственные средства визуализации: https://stackoverflow.com/a/49193488/1039935 – Arvis