views:

543

answers:

1

Every time I write out a setter whose Value property value isn't describable inline, I curse the fact that the API doesn't mark the Setter class with [ContentProperty("Value")], which would allow this:

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

...to be simplified to this:

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

So my question is kinda twofold. Firstly, is there a good reason that the API hasn't been configured this way? Secondly, is there anything stopping my making this metadata available to the XamlReader somehow, even though I don't control the WPF API?

+1  A: 

Good point indeed... But you could easily create your own Setter class inherited from System.Windows.Setter, put the ContentProperty attribute on it, and use it instead of the standard Setter.

Thomas Levesque