Я работаю с классами в пространстве имен System.Windows.Documents
, пытаясь написать некоторый универсальный код, который будет условно устанавливать значение определенных свойств зависимости в зависимости от того, существуют ли эти свойства в данном классе.
Например, следующий метод присваивает произвольное значение свойству Padding
переданного FrameworkContentElement
:
void SetElementPadding(FrameworkContentElement element)
{
element.SetValue(Block.PaddingProperty, new Thickness(155d));
}
Однако не все конкретные реализации FrameworkContentElement
имеют свойство Padding
(Paragraph
имеет, но Span
не имеет), поэтому я ожидаю, что присвоение свойства будет успешным для типов, которые реализуют это свойство, и будет молча игнорируется для типов, которые этого не делают.
Но, похоже, что указанное выше назначение свойства успешно выполняется для экземпляров всех производных FrameworkContentElement
, независимо от того, реализуют ли они свойство Padding
. Я делаю это предположение, потому что мне всегда удавалось прочитать присвоенное значение.
Я предполагаю, что в назначении значений свойств есть некоторый недостаток. Что я должен сделать, чтобы гарантировать, что данное назначение свойства зависимости игнорируется классами, которые не реализуют это свойство?
Большое спасибо за ваш совет.
Тим