MetroStyleManager 更改内容的主题但不更改表单的主题
MetroStyleManager changes content's theme but not the form's theme
我到处找都找不到解决方法。
我的 MetroForm 中有一个按钮,on_click 它执行以下操作:
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();
}
我到处找都找不到解决方法。
我的 MetroForm 中有一个按钮,on_click 它执行以下操作:
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();
}