AppThemeBinding для свойства FontImageSource для настраиваемого элемента управленияAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 AppThemeBinding для свойства FontImageSource для настраиваемого элемента управления

Сообщение Anonymous »

В настоящее время я разрабатываю пользовательский элемент выбора с возможностью добавления значка.
Пользовательский элемент управления состоит из:
  • наследования пользовательского элемента управления из класса Picker.
  • Пользовательский обработчик, наследуемый от класса PickerHandler.
Компонент должен иметь возможность управлять тема меняется динамически, до сих пор я реализовал PropertyMapper и статические методы для обновления базового макета.
Проблема возникает со свойством Source типа ImageSource: при использовании FontImageSource в качестве объекта с AppThemeBinding, установленным для Color, например, обновление не происходит. возникают при смене темы. метод MapSource не вызывается, поскольку OnPropertyChanged не вызывается свойством Source.
Я безуспешно пытался передать событие PropertyChanged родительскому элементу, как показано ниже:

Код: Выделить всё

public static readonly BindableProperty SourceProperty = BindableProperty.Create(nameof(Source), typeof(ImageSource), typeof(IconPicker), defaultValue: default(ImageSource));

public ImageSource Source
{
get => (ImageSource)GetValue(SourceProperty);
set
{
value.PropertyChanged += (s, e) => OnPropertyChanged(nameof(Source));
SetValue(SourceProperty, value);
}
}
Моя вторая попытка состояла в том, чтобы зарегистрироваться в Application.Current.RequestedThemeChanged и вызвать OnPropertyChanged для объекта Source в случае изменения свойства Color. При отладке даже после изменения темы и AppThemeBinding установленное свойство Color осталось прежним.
В следующем коде AppThemeBinding работает должным образом, поэтому AppThemeBinding можно будет связать с FontImageSource для запуска. Изменение пользовательского интерфейса: Код и пример проекта доступны по этой ссылке: github.
Шаги для воспроизведения:
Обновите IconPickerPage и установите FontImageSource следующим образом: Запустите приложение, перейдите в IconPicker и переключите темный/светлый режим, значок не перерисовывается.

Подробнее здесь: https://stackoverflow.com/questions/793 ... om-control
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»