Alex Rivera | Logout

Setting a style's TargetType property to a base class

Asked 2009-06-22T11:26:17.717
48

I was just poking around a bit in WPF and wanted all elements on my Window to share the same margin. I found that all Controls that are capable of having a margin derive from FrameworkElement so I tried the following:

<Window.Resources>
<Style TargetType="{x:Type FrameworkElement}">
    <Setter Property="Margin" Value="10" />
</Style>
</Window.Resources>

And, this doesn't work. I can apply this to all Buttons, but not to all Elements that derive from Button. Am I missing something or is this simply not possible?

Am I the only one feeling like using CSS for WPF would have been a good idea?

Edit
Report

1 Answer

7

The issue is that when searching for a style WPF does not search through all classes from which the current one derives. However you can give the style a key and apply it to all elements for which you wish to have a common property. If a property is specified in the style that cannot be applied to the element you are styling, it is ignored.

answered 2009-09-24T03:44:56.370

Your Answer