我的Windows窗体应用程序使用以下标准代码行,以便为整个应用程序启用视觉样式(主题)...
Application.EnableVisualStyles();
...工作得很好,所有的控制都有主题外观,而不是平坦的战舰灰色,否则你会得到.但我需要关闭一个控件实例的视觉样式.我不能删除上面的行,因为那样我将失去所有控件的主题.是否可以从单个控件实例中删除主题?
仅供参考:当我发生这种情况时,我想从DateTimePicker实例中删除主题,所以如果除了DateTimePicker之外一般答案是否定的那么那就足够了.如果解决方案涉及在最低级别玩控件,我很乐意使用平台调用.
看起来你可以在控件上使用SetWindowTheme:
[DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)] public extern static Int32 SetWindowTheme (IntPtr hWnd, String textSubAppName, String textSubIdList); yourControl.FlatStyle = FlatStyle.System; SetWindowTheme(yourControl.Handle, "", "");
原始CodeProject文章