MetroStyleManager更改内容';主题而不是形式';的主题
本文关键字:MetroStyleManager | 更新日期: 2023-09-27 17:59:52
我到处找都找不到解决方案。
我的MetroForm中有一个按钮,点击后会执行以下操作:
metroStyleManager.Theme = metroStyleManager.Theme == MetroThemeStyle.Light ? MetroThemeStyle.Dark : MetroThemeStyle.Light;
我还有一个白色图像作为背景,属性AllowImageInvert
设置为True
,但当我实际单击按钮时,它会更改表单中所有内容的主题,但不会更改实际表单的主题。
所以我试着添加这行代码:
this.Theme = metroStyleManager.Theme;
但它似乎总是落后一个。
所以我点击按钮,内容的主题是Dark
,而表单的主题是Light
。再次单击会将内容的主题更改为Light
,并且表单主题更改为Dark
。我把它设置得和示例项目一样,效果很好。
有什么建议吗?
谢谢!
经过数小时的尝试和错误,我终于修复了它。
希望这能帮助到其他有这个问题的人。
我最后把这个添加到代码的末尾:
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();
}