更新 xtraTabbedMdiManager1 表单的图标

本文关键字:图标 表单 xtraTabbedMdiManager1 更新 | 更新日期: 2023-09-27 17:55:26

我正在使用xtraTabbedMdiManager和awesomium chrome浏览器在互联网浏览器上工作。当加载框架完成结束时,我从网站上获取图标并替换子表单图标。

在常规表单应用程序中,这完美运行,但我注意到在 xtraTabbedMdiManager 选项卡中图标不会改变。文本会更改,但其他任何内容都不起作用。如果有人能帮忙,我将不胜感激。下面是加载框架完成事件。

private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
    {
        Icon ic = GetFavicon(webControl1.Source.ToString());
        string strText = "";
        if (!webControl1.Title.ToString().Contains("about:blank"))
        {
            strText = webControl1.Title;
            if (strText.Length > 15)
            {
                strText = strText.Remove(15) + "...";
            }
            this.Text = strText;
            this.Icon = ic;//this icon should change...and it does if it was just a regular form
        }
    }

这是在 xtraTabbedMdi 父级的子窗体中完成的。请帮忙!

更新 xtraTabbedMdiManager1 表单的图标

我建议您直接通过 XtraMdiTabPage.Image 或 XtraMdiTabPage.ImageIndex 属性为选项卡页面指定图像,并避免使用 Form.Icon 属性,因为 XtraTabbedMdiManager 仅使用 Form.Icon 初始化 XtraMdiTabPage.Image 属性,并且在此之后不会跟踪Form.Icon属性的更改。

伪代码:

xtraTabbedMdiManagerInstance.UseFormIconAsPageImage = DevExpress.Utils.DefaultBoolean.False;
//...
void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, EventArgs e) {
    Icon favicon = GetFavicon(...);
    xtraTabbedMdiManagerInstance.Pages[this].Image = favicon.ToBitmap();
}