Thursday, May 5, 2011

WPF - Is there a good reason that Setter.Value isn't a ContentProperty?

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?

From stackoverflow
  • 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.

0 comments:

Post a Comment