Steve
Steve

Reputation: 61

How to override button's style in <Style> tag?

Let suppose I have template of button's style, but I want to add to one specific button a few DataTriggers (in tag) but I can't do that, because Style is already defined

<Button Style="{DynamicResource MetroCircleButtonStyle}"> 
   <Button.Style> // error - The property "Style" is set more than once
       <Style TargetType="Button">
           <Style.Triggers>

           </Style.Triggers>
        </Style>
    </Button.Style>   
 </Button>

How do I set Style="{Dynamicresource MetroCircleButtonStyle}" inside <Style> tag to avoid error?

Upvotes: 0

Views: 74

Answers (1)

Juan Carlos Rodriguez
Juan Carlos Rodriguez

Reputation: 784

Just "override" your "MetroCircleButtonStyle" creating a new Style based on "MetroCircleButtonStyle".

 <Style x:Key="MetroCircleButtonStyleWithChanges" TargetType="{x:Type Button}" BasedOn="{StaticResource MetroCircleButtonStyle}" />

And there do whatever you need. Then just use it:

<Button Style="{DynamicResource MetroCircleButtonStyleWithChanges}" /> 

If you aren't going to use it anymore you could just define it in the button like:

    <Button>
        <Button.Style>
            <Style BasedOn="MetroCircleButtonStyle" TargetType="Button">
                <!--Whatever you need-->
            </Style>
        </Button.Style>
    </Button>

Upvotes: 1

Related Questions