Это поведение по умолчанию. Стилизация отключенных элементов не поддерживается по умолчанию, если элемент управления не имеет для него фактического свойства. но вы можете легко реализовать что-то подобное несколькими различными способами. Можно было бы создать пользовательский Entry
с привязываемым свойством, называемым чем-то вроде DisabledStyle
. Затем вы можете установить собственный стиль для отключенных Entry
полей.
Вариант 1. Пользовательская запись
public class ExtendedEntry : Entry
{
private Style normalStyle;
public Style DisabledStyle
{
get { return (Style)GetValue(DisabledStyleProperty); }
set { SetValue(DisabledStyleProperty, value); }
}
public static readonly BindableProperty DisabledStyleProperty = BindableProperty.Create(nameof(DisabledStyle), typeof(Style), typeof(ExtendedEntry), null, BindingMode.TwoWay, null, (obj, oldValue, newValue) => { });
public ExtendedEntry()
{
normalStyle = this.Style;
this.PropertyChanged += ExtendedEntry_PropertyChanged;
}
private void ExtendedEntry_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(IsEnabled) && this.DisabledStyle != null)
{
if (this.IsEnabled)
this.Style = normalStyle;
else
this.Style = DisabledStyle;
}
}
}
Вариант 2. Триггеры
Другой вариант - использовать триггер:
<Entry Placeholder="enter name">
<Entry.Triggers>
<Trigger TargetType="Entry"
Property="IsEnabled" Value="True">
<Setter Property="BackgroundColor" Value="Yellow" />
</Trigger>
</Entry.Triggers>
</Entry>
person
Steven Thewissen
schedule
29.05.2017