wpf 有没有办法在VSTO outlook加载项中更改边框/页眉背景?

7lrncoxx  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(130)

我正在为Outlook 2016开发一个VSTO插件,但无法更改边框和标题的背景颜色(正如您可以从链接的图像中看到的)。
我试图强制TaskPaneWpfControlHost对象的“BackColor”属性,但结果是注入到容器中的用户控件的背景发生了变化。

public TaskPaneWpfControlHost(System.Windows.Controls.UserControl shell)
    {
        this.BackColor = System.Drawing.Color.White;
        InitializeComponent();
        wpfElementHost.HostContainer.Children.Add(shell);
        wpfElementHost.AutoSize = true;
        wpfElementHost.Dock = DockStyle.Fill;
        _shell = shell;
    }
uajslkp6

uajslkp61#

你可以参考下面的代码来使用BackColor:

private const string WindowColor = @"#FF2D2D30";

var color = ColorTranslator.FromHtml(WindowColor);
this.BackColor = Color.FromArgb(color.R, color.G, color.B);

如需了解更多信息,请参阅以下链接:
Is there any way to change custom task pane color in VSTO outlook add in?
How to: Set the Background of a Windows Forms Panel

kulphzqa

kulphzqa2#

我认为Outlook对象模型没有提供任何机制来做到这一点。也许你可以使用一种hack使用Windows API函数或钩子来做到这一点。
AFAIK自定义任务窗格的标题栏(标题)、按钮和边框由Outlook VSTO自己管理和绘制。实际上,自定义任务窗格是一个无边框窗口,但VSTO添加了其余部分(边框、标题栏-标题-、按钮)。

相关问题