Я использую WPF в качестве примера.Предположим, что у нас есть контроллер X, и мы устанавливаем его фон для изображения.Затем мы хотим, чтобы при наведении мыши не было фонового изображения.Это может быть достигнуто с помощью x: Null.Однако, если мы не указываем x: Null, он сохраняет то же изображение.
Я пытаюсь создать собственный движок скина для платформы, которая не поддерживает WPF.Я пытаюсь выяснить, как воспроизвести это поведение.Проблема в том, что если у меня есть класс XControlStyle
и два экземпляра этого класса, один для нормального состояния и один для наведения мыши, то не очевидно, как добиться того, что я сделал в wpf ..
Поскольку настройка, например,mouseover.Backgroundimage = null не может сказать, установил ли пользователь значение null или значение по умолчанию равно null. Эта проблема хуже с типами значений. Установка всех свойств дважды не является элегантным решением. Также мне нужно решение, чтобысделать BackgroundImage, как будто он никогда не был установлен. Я выяснил 3 решения (по свойствам, словарному классу для хранения, оборачиванию значений свойств в оболочке класса), но, хотя я реализовал последнее, я не удовлетворен.я думаю, что они хранят эти данные как метаданные как-то?Поэтому мне интересно, является ли метаданные каким-то образом решением моей проблемы? Любая идея?