Search code examples
wpfstylescode-behind

Set default style for a type in code-behind


How to set the default style for a type in code-behind e.g. for:

<ScaleTransform x:Key="scaler" ScaleX="1.25" ScaleY="1.25" />
<Style TargetType="{x:Type ToolTip}">
  <Setter Property="LayoutTransform" Value="{DynamicResource scaler}"/>
</Style>

I need to set the style for the tooltip in code-behind instead of in the xaml markup.


Solution

  •    Style style = new Style {TargetType = typeof (ToolTip)};
    
        Setter setter = new Setter();
        setter.Property = FrameworkElement.LayoutTransformProperty;
        setter.Value = FindResource("scaler");
    
        style.Setters.Add(setter);
    
        Resources.Add(typeof(ToolTip), style);