New to Telerik UI for WPF? Download free 30-day trial

How to Set Theme's Color Variation in Design Time

Environment

Product Version 2023.3 1115
Product Telerik UI for WPF

Description

How to set a theme's color variation in Visual Studio's designer.

Solution

Visual Studio will run code for designer use if you have enabled the Project Code setting in the designer.

To change the color variation of the theme at design-time, create a new UserControl that will contain the controls or a custom control. In in its static constructor, call the LoadPreset method of the palette of the chosen theme.

MainWindow displaying a custom UserControl

<Window x:Class="MyApplication.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:local="clr-namespace:DesignTimeThemeVariationTest" 
        mc:Ignorable="d" 
        Title="MainWindow" Height="450" Width="800"> 
    <Grid Background="Black"> 
        <local:MyUserControl/> 
    </Grid> 
</Window> 

Custom UserControl

<UserControl x:Class="MyApplication.MyUserControl" 
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
             xmlns:local="clr-namespace:DesignTimeThemeVariationTest" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
             mc:Ignorable="d"  
             d:DesignHeight="450" d:DesignWidth="800"> 
    <Grid> 
        <telerik:RadButton HorizontalAlignment="Center" VerticalAlignment="Center"  Content="RadButton"/> 
    </Grid> 
</UserControl> 

Setting the theme's color variation in the static constructor of the custom UserControl

public partial class MyUserControl : UserControl 
{ 
    static MyUserControl() 
    { 
        FluentPalette.LoadPreset(FluentPalette.ColorVariation.Dark); 
    } 
 
    public MyUserControl() 
    { 
        InitializeComponent(); 
    } 
} 
Public Partial Class MyUserControl 
    Inherits UserControl 
 
    Private Shared Sub New() 
        FluentPalette.LoadPreset(FluentPalette.ColorVariation.Dark) 
    End Sub 
 
    Public Sub New() 
        InitializeComponent() 
    End Sub 
End Class 

Designer with the Dark color variation of the Fluent theme

WPF Designer with the Dark color variation of the Fluent theme

Clean, rebuild and run the project before reloading the designer for the changes to take effect.

Setting the theme's color variation in the static constructor of MainWindow will not be reflected in the designer as it is not called at design-time.

See Also

In this article