如何设置标签控件的forecolor以匹配选定的outlook主题?

时间:2013-06-01 06:17:28

标签: c# .net outlook vsto outlook-2010

如何在为Outlook 2010开发的自定义表单区域中设置标签的颜色以匹配用户选择的主题颜色?请参阅下面的图片,了解我正在尝试做什么。

我正在尝试将自定义表单标签forecolor与Outlook实例中选定的主题forecolor匹配。

Attempting to match the color of a control to the Outlook 2010 user selected theme

4 个答案:

答案 0 :(得分:2)

从我所知道的(我可能是错的)Outlook从Windows获得它的主题(除非你是指电子邮件或固定主题。我会尝试这条路线。

更新:环顾四周我看到你是否进入了一个电子邮件,然后是Office按钮 - >编辑器选项 - >主题你可以选择3个默认主题(蓝色,黑色和银色),但我唯一可以看到注册表中的更新是关键:

HKCU\Software\Microsoft\Office\12.0\Common\Theme

我正在使用Office 2007.不好的部分是它只是插入一个看似与主题相对应的十六进制数字,但我看不到哪里可以找到这个的映射。

答案 1 :(得分:0)

扩展Mike的帖子,

此注册表项 HKCU \软件\微软\办公室\ 12.0 \ COMMON \主题

只有三种选择。

1和2的值为黑色,值为3,前景为白色。

银色主题和蓝色主题使用黑色前景。 黑色主题使用白色和黑色主题是值3

答案 2 :(得分:0)

我终于通过在窗体区域级别实现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;
    }
}

答案 3 :(得分:-1)

我相信如果您访问标签的“设置字体颜色”属性或您拥有的内容,则可以执行以下操作:

label1.SetForeColor(SystemColors.Highlight);

http://msdn.microsoft.com/en-us/library/system.drawing.systemcolors.aspx

另见:

SystemColors.ActiveBorder
SystemColors.ActiveCaption
SystemColors.ActiveTextCaption