728x90
반응형
예전에는 스킨만 선택하면 됐는데 요즘에는 스킨 안에 색배열.. 제목에서 말한 스킨 팔렛이 또 존재합니다.
함수하나로 동시 적용하는 게 있으면 좋겠습니다만, 아직 제가 못 찾은 건지 없는 건지... 좀 코드가 많지만 소개해 봅니다.
스킨 동시적용하기
대략적인 코드의 주석은 아래 참조해주시고요.
GClass.LoginUser는 전역객체입니다. 로그인 사용자 별로 스킨을 적용할 수 있도록 하였습니다. 둘다 이름을 저장하기 때문에 String객체입니다.
// 스킨을 적용합니다. (요건 기존과 같습니다.)
UserLookAndFeel.Default.SkinName = GClass.LoginUser.skin;
// 현재 스킨을 가져와 객체에 담는다.
var skin = CommonSkins.GetSkin(UserLookAndFeel.Default);
// 저장된 이름으로 팔레트를 가져온다.
DevExpress.Utils.Svg.SvgPalette svgPalette = skin.CustomSvgPalettes[GClass.LoginUser.skinstyle];
// 가져온 팔레트를 적용한다.
skin.SvgPalettes[Skin.DefaultSkinPaletteName].CustomPalette = svgPalette;
// 룩앤필을 강제 적용한다.
LookAndFeelHelper.ForceDefaultLookAndFeelChanged();
현재 스킨 및 스킨 팔렛트 가져오기
// 현재 스킨을 저장
GClass.LoginUser.skin = LookAndFeel.ActiveSkinName;
// 위 코드랑 비스무리하죠?
var commonSkin = CommonSkins.GetSkin(UserLookAndFeel.Default);
DevExpress.Utils.Svg.SvgPalette customPallete = commonSkin.SvgPalettes[DevExpress.Skins.Skin.DefaultSkinPaletteName].CustomPalette;
// 요기만 현재 스킨의 커스텀 팔레트 중 이름으로 찾는 코드입니다.
string name = commonSkin.CustomSvgPalettes.FirstOrDefault(x => x.Value == customPallete).Key?.Name;
// 스킨 팔레트를 저장
GClass.LoginUser.skinstyle = name;
더 간편한 코드가 있으면 덧글 남겨주세요.
반응형
'개발 > C# + DevExpress' 카테고리의 다른 글
DevExpress Listbox 항목 별 색깔 바꾸기 (0) | 2023.05.31 |
---|---|
DevExpress Dock Manager 팝업 메뉴 안 보이게... (0) | 2022.12.15 |
[2022.08] DevExpress Grid Autofilter에 값 설정 (0) | 2022.08.31 |
[2022.08] Devexpress ComboboxEdit 폰트 설정 (0) | 2022.08.12 |
[2022.06] Devexpress ImageComboboxEdit 사용법 (0) | 2022.06.21 |