DevExpress/DX_WPF

[DX_WPF] Themes

딸기우유중독 2023. 5. 3. 09:56

 

 

 

아래 코드 있으면 자체제작 Thme 작동안함.

        //CompatibilitySettings.UseLightweightThemes = true;

 

 

Theme 자체제작 tool

DevExpress Theme Designer 

 


 

https://dlsenfl.tistory.com/entry/C-NuGet-Package-Explorer

 

[C#] NuGet Package Explorer

NuGet Package Explorer Install https://apps.microsoft.com/detail/9WZDNCRDMDM3?hl=en-US&gl=US NuGet Package Explorer - Official app in the Microsoft Store IMPORTANT: This app works with Windows 10 Pro and Home. This app performs with core functionality on W

dlsenfl.tistory.com

https://docs.devexpress.com/WpfThemeDesigner/118594/getting-started#create-a-new-theme

 

Get Started | WPF Theme Designer | DevExpress Documentation

This topic describes how to change the Microsoft Excel-inspired Office 2019 Colorful theme from blue colors to green. Create a New Theme Run the Theme Designer. Open the Get Started Tab and select Create a New Theme. Select a base theme and version for you

docs.devexpress.com

 

https://docs.devexpress.com/WPF/403598/common-concepts/themes/customize-devexpress-theme-resources

 

Modify Theme Resources | WPF Controls | DevExpress Documentation

You can customize a visual element’s theme resources (brushes, thicknesses, colors, styles, templates, and so on) as described below. If you use the DevExpress WPF Controls NuGet packages, you should additionally install DevExpress WPF Controls on your m

docs.devexpress.com

 

 


 

NugetPackage 추가 or dll 추가 참조

 

리본 페이지에 Theme Selector추가

 

App 시작 시 Theme 설정

public partial class App : Application {
    protected override void OnStartup(StartupEventArgs e) {
        ApplicationThemeHelper.ApplicationThemeName = Theme.MetropolisLightName;
        base.OnStartup(e);
    }
}

 

App 종료 시 현재 Theme상태로 저장

 

ThmeSelector에서 Theme 선택적으로 보이게

public App()
    {
        foreach (Theme theme in Theme.Themes.ToList())
        {
            if (theme.Category == Theme.MetropolisCategory ||
                theme.Name == Theme.Win11DarkName) theme.ShowInThemeSelector = true;
            else
                theme.ShowInThemeSelector = false;
        }
    }

 

 

ViewModel

 

생성자

 

 

 

Theme Selector Show/Hide

 

Theme.Win11Category 랑 theme.Name == "LSStudio_Theme" 인 Theme만 Show 나머진 Hide

 

 

 


 

 

https://docs.devexpress.com/WPF/DevExpress.Xpf.Ribbon.RibbonGalleryItemThemeSelectorBehavior

 

RibbonGalleryItemThemeSelectorBehavior Class | WPF Controls | DevExpress Documentation

RibbonGalleryItemThemeSelectorBehavior Class Populates the associated RibbonGalleryBarItem with available themes and allows you to choose the application’s theme. Namespace: DevExpress.Xpf.Ribbon Assembly: DevExpress.Xpf.Ribbon.v24.2.dll NuGet Package: D

docs.devexpress.com

 

 

 

 

https://supportcenter.devexpress.com/ticket/details/t134046/dxr-ribbongalleryitemthemeselectorbehavior-in-a-backstagetabitem

 

<dxr:RibbonGalleryItemThemeSelectorBehavior/> in a BackstageTabItem

You have yet to view any tickets. Your search criteria do not match any tickets. A server error occurred while processing your request. Please try again at a later time.

supportcenter.devexpress.com

 


DevExpress Theme Selector 3가지 방법

 

<dxr:RibbonDefaultPageCategory>
                <dxr:RibbonPage Caption="Home" />
                <dxr:RibbonPage Caption="Settings" IsSelected="True">
                    <dxr:RibbonPageGroup Caption="Bar Split Item">
                        <dxb:BarSplitButtonItem
                            Content="Themes"
                            Glyph="{dx:DXImage Image=LoadTheme_16x16.png}"
                            LargeGlyph="{dx:DXImage Image=LoadTheme_32x32.png}">
                            <dxmvvm:Interaction.Behaviors>
                                <dxb:BarSplitItemThemeSelectorBehavior />
                            </dxmvvm:Interaction.Behaviors>
                        </dxb:BarSplitButtonItem>
                    </dxr:RibbonPageGroup>

                    <dxr:RibbonPageGroup Caption="Bar Sub Item">
                        <dxb:BarSubItem
                            Content="Themes"
                            Glyph="{dx:DXImage Image=LoadTheme_16x16.png}"
                            LargeGlyph="{dx:DXImage Image=LoadTheme_32x32.png}">
                            <dxmvvm:Interaction.Behaviors>
                                <dxb:BarSubItemThemeSelectorBehavior ShowMode="GroupedInSubMenus" />
                            </dxmvvm:Interaction.Behaviors>
                        </dxb:BarSubItem>
                    </dxr:RibbonPageGroup>

                    <dxr:RibbonPageGroup Caption="Ribbon Gallery Item">
                        <dxr:RibbonGalleryBarItem Content="Themes">
                            <dxmvvm:Interaction.Behaviors>
                                <dxr:RibbonGalleryItemThemeSelectorBehavior />
                            </dxmvvm:Interaction.Behaviors>
                            <dxr:RibbonGalleryBarItem.Gallery>
                                <dxb:Gallery ColCount="4" />
                            </dxr:RibbonGalleryBarItem.Gallery>
                        </dxr:RibbonGalleryBarItem>
                    </dxr:RibbonPageGroup>

                </dxr:RibbonPage>
            </dxr:RibbonDefaultPageCategory>

https://github.com/DevExpress-Examples/wpf-mvvm-behaviors-barItems-based-theme-selectors

 

GitHub - DevExpress-Examples/wpf-mvvm-behaviors-barItems-based-theme-selectors: .NET, WPF, DXBars for WPF

.NET, WPF, DXBars for WPF. Contribute to DevExpress-Examples/wpf-mvvm-behaviors-barItems-based-theme-selectors development by creating an account on GitHub.

github.com

 


 

Default Theme 설정.

 

https://dlsenfl.tistory.com/entry/DXWPF-DevExpress-Default-Theme

 

[DX_WPF] DevExpress Default Theme

DevExpress 기본 테마는 Office2019Colorful 고정 GetDefaultThemeName() 는 private이라 못 불러옴 public static void UpdateApplicationThemeName() { if (!CompatibilitySettings.UseLightweightThemes && ApplicationThemeHelper.UseLegacyDefaultTheme ||

dlsenfl.tistory.com

 

 

728x90