Completed
Last Updated: 19 Jan 2023 14:50 by ADMIN
Release R1 2023
Stenly
Created on: 11 Jan 2023 09:32
Category: Window
Type: Bug Report
2
Window: Switching Windows11 color variation is not correctly applied with the Mica effect

Switching the Windows 11 theme's color variation to a different one is not correctly applied with the Mica effect. This is present when the Windows 11 version is 22621.

A temporary resolution is to stop the Mica effect by setting the WindowEffectsHelper.BackdropMaterial property on the RadWindow to None

<telerik:RadWindow x:Class="Example.MainWindow" 
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
                xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
                xmlns:helpers="clr-namespace:Telerik.Windows.Controls.Theming.Helpers;assembly=Telerik.Windows.Controls" 
                helpers:WindowEffectsHelper.BackdropMaterial="None" 
                Header="RadWindow"> 

An alternative approach would be to use DynamicResource when basing the custom style for the RadWindow on its default one. Also, when changing the color variation, the merged resource dictionaries could be cleared and then merged again. This way, the Mica effect will not have to be turned off.

<telerik:RadWindow  xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="Example.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:WindowWindows11ThemeTest"
                    mc:Ignorable="d"
                    
                    Style="{DynamicResource RadWindowStyle}"
                    
                    Header="MainWindow" Height="450" Width="800">
private bool isDarkPalette;

private void RadButton_Click(object sender, RoutedEventArgs e)
{
    if (this.isDarkPalette)
    {
        Windows11Palette.LoadPreset(Windows11Palette.ColorVariation.System);
        this.isDarkPalette = false;
    }
    else
    {
        Windows11Palette.LoadPreset(Windows11Palette.ColorVariation.Dark);
        this.isDarkPalette = true;
    }

    this.MergeDictionaries();
}

private void MergeDictionaries()
{
    Application.Current.Resources.MergedDictionaries.Clear();
    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
    {
        Source = new Uri("/Telerik.Windows.Themes.Windows11;component/Themes/System.Windows.xaml", UriKind.RelativeOrAbsolute)
    });
    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
    {
        Source = new Uri("/Telerik.Windows.Themes.Windows11;component/Themes/Telerik.Windows.Controls.xaml", UriKind.RelativeOrAbsolute)
    });
    Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
    {
        Source = new Uri("/Telerik.Windows.Themes.Windows11;component/Themes/Telerik.Windows.Controls.Navigation.xaml", UriKind.RelativeOrAbsolute)
    });
}
0 comments