Есть ли веская причина, по которой Setter.Value не является ContentProperty? - PullRequest
10 голосов
/ 06 мая 2009

Каждый раз, когда я выписываю сеттер, значение свойства которого Value не может быть встроено, я проклинаю тот факт, что API не помечает класс Setter как [ContentProperty("Value")], что позволяет: *

<Setter Property="BitmapEffect">
  <Setter.Value>
    <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
  </Setter.Value>
</Setter>

... будет упрощено до этого:

<Setter Property="BitmapEffect">
  <OuterGlowBitmapEffect GlowColor="#AAC" Opacity="0.2" GlowSize="1.25" />
</Setter>

Так что мой вопрос двоякий. Во-первых, есть ли веская причина, по которой API не был настроен таким образом? Во-вторых, что-то мешает сделать эти метаданные доступными для XamlReader, хотя я не контролирую WPF API?

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Через десять лет и восемнадцать дней после того, как задать этот вопрос, у нового WPF с открытым исходным кодом есть PR, который исправляет это:

https://github.com/dotnet/wpf/pull/745

2 голосов
/ 06 мая 2009

Действительно, хороший момент ... Но вы могли бы легко создать свой собственный класс Setter, унаследованный от System.Windows.Setter, поместить в него атрибут ContentProperty и использовать его вместо стандартного Setter.

...