WPF에서 MahApps와 MaterialDesign을 사용하면 Dark, Light 모드에서 표시가 잘되지 않습니다.
5770 단어 MaterialDesignC#MahApps.MetroWPF
소개
이전 MahApps에서 컬러 설정 저장 및 사용 이라는 기사를 썼습니다만, 거기서 테마를 Dark 모드로 했을 경우, 문자가 흰 빼기가 되는 것입니다만, 컨트롤에 의해 흑문자의 남아 있거나, 흰색 배경에 백문자라고 하는 현상이 일어나 네.
문제
진짜는 이렇게(Dark)인데

그것이 이렇게된다 (가장 왼쪽 ListBox가 검은 문자)

Light의 경우 사실은 이렇게 될 것입니다.

그것이 이렇게 된다(괘선이 보이지 않는다(흰색?))

해결
이전 기사에서 SetThemeAndColor를 호출했지만 그 전에 ApplyBaseTheme을 호출하여 다음과 같이 설정하면 잘 작동했습니다.
using MaterialDesignThemes.Wpf;
private readonly PaletteHelper _paletteHelper = new PaletteHelper();
public void ApplyBaseTheme(bool isDark)
{
ITheme theme = _paletteHelper.GetTheme();
IBaseTheme baseTheme = isDark ? new MaterialDesignDarkTheme() : (IBaseTheme)new MaterialDesignLightTheme();
theme.SetBaseTheme(baseTheme);
_paletteHelper.SetTheme(theme);
}
MaterialDesign측의 테마 설정을 먼저 실시해, 그 후 통상의 테마 설정을 하면 잘 컬러를 설정할 수 있는 것 같습니다.
이런 느낌입니다
private void ApplyBase(bool isDark)
{
// ApplyBaseThemeを行う
_materialDesignColorService.ApplyBaseTheme(isDark);
// SetThemeAndColorを行う
OnSetTheme(isDark);
// カラーを保存
_materialDesignColorService.SaveMaterialDesignColors();
}
private void OnSetTheme(bool isDark)
{
AppTheme apptheme; //AppTheme:enum Dark, Light
if (isDark)
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Dark");
}
else
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Light");
}
_themeSelectorService.SetThemeAndColor(apptheme, SelectedWindowColor.Value);
}
Reference
이 문제에 관하여(WPF에서 MahApps와 MaterialDesign을 사용하면 Dark, Light 모드에서 표시가 잘되지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mkuwan/items/844094ff2a991a40b8a4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
진짜는 이렇게(Dark)인데

그것이 이렇게된다 (가장 왼쪽 ListBox가 검은 문자)

Light의 경우 사실은 이렇게 될 것입니다.

그것이 이렇게 된다(괘선이 보이지 않는다(흰색?))

해결
이전 기사에서 SetThemeAndColor를 호출했지만 그 전에 ApplyBaseTheme을 호출하여 다음과 같이 설정하면 잘 작동했습니다.
using MaterialDesignThemes.Wpf;
private readonly PaletteHelper _paletteHelper = new PaletteHelper();
public void ApplyBaseTheme(bool isDark)
{
ITheme theme = _paletteHelper.GetTheme();
IBaseTheme baseTheme = isDark ? new MaterialDesignDarkTheme() : (IBaseTheme)new MaterialDesignLightTheme();
theme.SetBaseTheme(baseTheme);
_paletteHelper.SetTheme(theme);
}
MaterialDesign측의 테마 설정을 먼저 실시해, 그 후 통상의 테마 설정을 하면 잘 컬러를 설정할 수 있는 것 같습니다.
이런 느낌입니다
private void ApplyBase(bool isDark)
{
// ApplyBaseThemeを行う
_materialDesignColorService.ApplyBaseTheme(isDark);
// SetThemeAndColorを行う
OnSetTheme(isDark);
// カラーを保存
_materialDesignColorService.SaveMaterialDesignColors();
}
private void OnSetTheme(bool isDark)
{
AppTheme apptheme; //AppTheme:enum Dark, Light
if (isDark)
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Dark");
}
else
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Light");
}
_themeSelectorService.SetThemeAndColor(apptheme, SelectedWindowColor.Value);
}
Reference
이 문제에 관하여(WPF에서 MahApps와 MaterialDesign을 사용하면 Dark, Light 모드에서 표시가 잘되지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mkuwan/items/844094ff2a991a40b8a4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using MaterialDesignThemes.Wpf;
private readonly PaletteHelper _paletteHelper = new PaletteHelper();
public void ApplyBaseTheme(bool isDark)
{
ITheme theme = _paletteHelper.GetTheme();
IBaseTheme baseTheme = isDark ? new MaterialDesignDarkTheme() : (IBaseTheme)new MaterialDesignLightTheme();
theme.SetBaseTheme(baseTheme);
_paletteHelper.SetTheme(theme);
}
private void ApplyBase(bool isDark)
{
// ApplyBaseThemeを行う
_materialDesignColorService.ApplyBaseTheme(isDark);
// SetThemeAndColorを行う
OnSetTheme(isDark);
// カラーを保存
_materialDesignColorService.SaveMaterialDesignColors();
}
private void OnSetTheme(bool isDark)
{
AppTheme apptheme; //AppTheme:enum Dark, Light
if (isDark)
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Dark");
}
else
{
apptheme = (AppTheme)Enum.Parse(typeof(AppTheme), "Light");
}
_themeSelectorService.SetThemeAndColor(apptheme, SelectedWindowColor.Value);
}
Reference
이 문제에 관하여(WPF에서 MahApps와 MaterialDesign을 사용하면 Dark, Light 모드에서 표시가 잘되지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mkuwan/items/844094ff2a991a40b8a4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)