" /> " /> "/>

How to apply style in WPF to all controls without overriding their original styles?

87 Views Asked by At

I want to create a style, which will normalize margins for all controls in a specific scenario:

<Style TargetType="FrameworkElement" x:Key="MyStyle">
    <Setter Property="Margin" Value="{StaticResource DialogItemsExceptTopMargin}" />
</Style>

I have then a couple of different controls: textboxes, comboboxes, checkboxes etc., to which I want to apply this style.

However, when I do that, their look is immediately reverted to the platform style (I am applying a style from 3rd party library). How can I define my style so that the original styles are kept intact?

Mind: I know, that I can use BasedOn for specific type:

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
...
</Style>

This however would require me to create completely separate styles for all possible controls, which I may use. I tried this trick with FrameworkElement and Control, but I got an error, that there is no such StaticResource.

0

There are 0 best solutions below