如何在我为 Outlook 2010 开发的自定义表单区域中设置标签的颜色以匹配用户选择的主题颜色?请参阅下面的图片,了解我正在尝试做的事情。
我正在尝试将我的自定义表单标签前景色与 Outlook 实例的任何选定主题前景色相匹配。
如何在我为 Outlook 2010 开发的自定义表单区域中设置标签的颜色以匹配用户选择的主题颜色?请参阅下面的图片,了解我正在尝试做的事情。
我正在尝试将我的自定义表单标签前景色与 Outlook 实例的任何选定主题前景色相匹配。
据我所知(我可能是错的)Outlook 从 Windows 获取其主题(除非您指的是电子邮件或固定主题。我会尝试这条路线。
更新:环顾四周,如果您进入电子邮件,然后查看 Office 按钮 -> 编辑器选项 -> 主题,您可以在 3 个默认主题(蓝色、黑色和银色)之间进行选择,但我唯一能看到的更新注册表是以下位置的键:
HKCU\Software\Microsoft\Office\12.0\Common\Theme
我正在使用 Office 2007。不好的部分是它只是插入了一个看起来与主题相对应的十六进制数字,但我看不到在哪里可以找到此映射。
扩展迈克的帖子,
此注册表项 HKCU\Software\Microsoft\Office\12.0\Common\Theme
只有三个选项。
值为 1 和 2 为黑色,值为 3 为前景为白色。
银色主题和蓝色主题使用黑色前景。黑色主题使用白色和黑色主题的值为 3
我终于通过在 formregion 级别实现 Paint 事件解决了这个问题。
private void FormRegion1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
if (controlX.BackColor.ToArgb() == System.Drawing.Color.FromArgb(255, 0, 0, 0).ToArgb())
{
controlX.ForeColor = System.Drawing.Color.White;
}
else if (controlX.BackColor.ToArgb() == System.Drawing.Color.FromArgb(255, 255, 255, 255).ToArgb())
{
controlX.ForeColor = System.Drawing.Color.DarkGray;
}
}
我相信如果您访问标签的 SetForeColor 属性或您拥有的属性,您可以执行以下操作:
label1.SetForeColor(SystemColors.Highlight);
http://msdn.microsoft.com/en-us/library/system.drawing.systemcolors.aspx
另见:
SystemColors.ActiveBorder
SystemColors.ActiveCaption
SystemColors.ActiveTextCaption