MetroStyleManager更改内容的主题,但不更改表单的主题

时间:2015-06-26 16:14:47

标签: c# java-metro-framework

我一直在各地搜索,找不到解决方案。

我的MetroForm中有一个按钮,on_click它执行以下操作:

metroStyleManager.Theme = metroStyleManager.Theme == MetroThemeStyle.Light ? MetroThemeStyle.Dark : MetroThemeStyle.Light;

我还有一个白色图片作为背景,我将属性AllowImageInvert设置为True,但当我实际点击按钮时,它会更改表单中所有内容的主题,但不会更改主题实际形式。

所以我尝试添加这行代码:

this.Theme = metroStyleManager.Theme;

但它似乎总是落在后面。

所以我点击按钮,内容的主题为Dark,而表单主题为Light。另一次点击会将内容的主题更改为Light,表单主题会更改为Dark。我的设置与工作正常的示例项目相同。

有什么建议吗?

谢谢!

1 个答案:

答案 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();
}