【发布时间】:2010-09-07 06:37:19
【问题描述】:
我有一些在 VB 2005 中的 UI,在 XP 风格中看起来很棒,但在经典风格中变得丑陋。
关于如何检测用户处于哪种模式并即时重新格式化表单的任何想法?
发布答案编辑:
谢谢丹尼尔,看来这会奏效。我正在使用您使用 GetCurrentThemeName() 函数发布的第一个解决方案。
我正在做以下事情:
函数声明:
Private Declare Unicode Function GetCurrentThemeName Lib "uxtheme" (ByVal stringThemeName As System.Text.StringBuilder, ByVal lengthThemeName As Integer, ByVal stringColorName As System.Text.StringBuilder, ByVal lengthColorName As Integer, ByVal stringSizeName As System.Text.StringBuilder, ByVal lengthSizeName As Integer) As Int32
代码正文:
Dim stringThemeName As New System.Text.StringBuilder(260)
Dim stringColorName As New System.Text.StringBuilder(260)
Dim stringSizeName As New System.Text.StringBuilder(260)
GetCurrentThemeName(stringThemeName, 260, stringColorName, 260, stringSizeName, 260)
MsgBox(stringThemeName.ToString)
当我使用 Windows 经典风格/主题时,MessageBox 显示为空,如果是 Windows XP 风格/主题,则显示“C:\WINDOWS\resources\Themes\luna\luna.msstyles”。如果用户设置的主题不是这两个主题,我将不得不做更多检查,看看会发生什么,但这应该不是什么大问题。
【问题讨论】:
标签: vb.net windows-xp appearance