Я создал свойство зависимости, которое представляет собой массив свойств зависимости. Я хотел бы добавить значения в xaml следующим образом:
<z:Zoomable.UnScale>
<x:Static Member="Rectangle.StrokeThicknessProperty" ></x:Static>
<x:Static Member="Ellipse.StrokeThicknessProperty"></x:Static>
</z:Zoomable.UnScale>
но жалуется с этой ошибкой:
StrokeThickness не является допустимым значением свойства UnScale.
Свойство определяется следующим образом:
public static readonly DependencyProperty UnScaleProperty =
DependencyProperty.RegisterAttached("UnScale", typeof(ObservableCollection<DependencyProperty>), typeof(Zoomable), new UIPropertyMetadata(GetPropertyCollection(), new PropertyChangedCallback(OnUnscaledChanged)));
Я подозреваю, что есть некоторая проблема в использовании StaticExtension, потому что, если я пытаюсь добавить DepenedencyPropery в чистый xaml, он работает (хотя он не работает, потому что нет пустого конструктора). Еще одна странная вещь : если я объявляю свойство как наблюдаемую коллекцию объектов и добавляю фиктивный объект, во-первых, он работает! то есть:
<z:Zoomable.UnScale>
<Button> Any object here </Button>
<x:Static Member="Rectangle.StrokeThicknessProperty" ></x:Static>
<x:Static Member="Ellipse.StrokeThicknessProperty"></x:Static>
</z:Zoomable.UnScale>