我一直在各地搜索,找不到解决方案。
我的MetroForm中有一个按钮,on_click它执行以下操作:
metroStyleManager.Theme = metroStyleManager.Theme == MetroThemeStyle.Light ? MetroThemeStyle.Dark : MetroThemeStyle.Light;
我还有一个白色图片作为背景,我将属性AllowImageInvert
设置为True
,但当我实际点击按钮时,它会更改表单中所有内容的主题,但不会更改主题实际形式。
所以我尝试添加这行代码:
this.Theme = metroStyleManager.Theme;
但它似乎总是落在后面。
所以我点击按钮,内容的主题为Dark
,而表单主题为Light
。另一次点击会将内容的主题更改为Light
,表单主题会更改为Dark
。我的设置与工作正常的示例项目相同。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
经过数小时的反复试验后,我终于修复了它。
希望这可以帮助其他有此问题的人。
我最后将其添加到代码的末尾:
this.Refresh();
所以最终的代码如下所示:
private void mtleSwitchTheme_Click(object sender, EventArgs e)
{
metroStyleManager.Theme = metroStyleManager.Theme == MetroThemeStyle.Light ? MetroThemeStyle.Dark : MetroThemeStyle.Light;
this.Theme = metroStyleManager.Theme;
this.Refresh();
}