ResourceDictionary 질문드립니다.

WPF를 사용중인데

여기서 ResourceDictionary를 질문드립니다.

현재 프로젝트 내에 Theme 폴더에

BlackTheme.xaml과 WhiteTheme.xaml을 생성하여 사용중입니다.

기존 테마는 BlackTheme.xaml로

app.xaml에

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MBTv2EISTester;component/Theme/BlackTheme.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

정의하여 사용중 입니다.

문제는

Test.xaml에 만든 RadioButton으로 Black이냐 White냐 선택에 따라서

전체 UI Control에 적용중인 Style을 선택한 .xaml로 변경 하고 싶은데

변경이 되질 않습니다…

// WPF 스타일 병합
foreach (Window window in Application.Current.Windows)
{
window.Resources.MergedDictionaries.Clear();
window.Resources.MergedDictionaries.Add(new ResourceDictionary
{
Source = new Uri(“pack://application:,/MBTv2EISTester;component/Theme/WhiteTheme.xaml”, UriKind.Absolute)
});
}

ApplicationThemeHelper.ApplicationThemeName = “Office2019White”;

현재 위 코드 처럼 테스트중인데

DevExpress에서 제공중인

ApplicationThemeHelper.ApplicationThemeName = “Office2019White”;

이건 먹히는데

Border나 Button Style을 생성한 WhiteTheme.xaml이 먹히지가 않습니다…

방법 문의드립니다.

Application.Current.Windows의 각 창에 대한 Resources 속성 대신
Application.Current.Resources 속성에 대해 Clear(), Add()를 하셔야 할 것 같네요.

혹시 안되가나 다른 문제가 있다면 아래 코드도 참고해 보세요.

2개의 좋아요