У меня есть свойство зависимостей (Foreground) на настраиваемом элементе управления, который наследуется от Control. Когда я загружаю элемент управления, я хочу узнать, установил ли пользователь свойство зависимостей или использует его значение по умолчанию, прежде чем устанавливать для них значение. Проблема немного сложнее, чем то, что здесь:Silverlight 2.0: Определите, установлено ли свойство зависимостей перед его изменением.
Элемент управления находится в пользовательской библиотеке управления, которую пользователь добавляет к своему проекту. Когда они настраивают свой проект, у меня есть возможность добавить строку в файл app.xaml с заданным ключом x:, который содержит параметры, которые я читаю, при установке значений по умолчанию для моих элементов управления. Однако, если они устанавливают значение как в коде, так и в xaml, я не хочу устанавливать значение с этим глобальным значением. Вот несколько случаев, чтобы помочь визуализировать то, что я говорю о:
Пользователь создает элемент управления из моей библиотеки и помещает его на своей странице. Затем они устанавливают передний план на зеленый. Я хочу, чтобы значение параметра переднего плана было зеленым для этого элемента управления.
Пользователь добавляет специальную строку в свой app.xaml, который заявляет, что хочет, чтобы все элементы управления определенного вида имели передний план красного цвета. Я хочу, чтобы значение переднего плана всех элементов управления такого типа было красным.
Пользователь добавляет специальную строку в свой app.xaml, который заявляет, что хочет, чтобы все элементы управления определенного вида имели передний план красного цвета. Затем они устанавливают значение переднего плана одного элемента управления (в xaml) на желтый. Я хочу, чтобы значение переднего плана всех элементов управления такого типа было красным, за исключением того, которое они иначе обозначили как желтый.
При загрузке элемента управления, я хочу прочитать свойство зависимостей, чтобы увидеть, если они установили значение, или, если это значение по умолчанию, которое определяется в стиле. Если это значение по умолчанию, я хочу затем прочитать их специальную строку из файла app.xaml и установить переднюю часть этого цвета.