VSTO-Excel 自定义任务窗格根据屏幕分辨率自动调整大小

VSTO-Excel Custom Task Pane AutoResize based on Screen Resolution

我的 excel 的 VSTO 插件有问题。 我尝试为我的插件创建自定义任务窗格。但是,当我尝试将它部署在与开发人员显示器分辨率不同的屏幕上时,插件不会自动适合屏幕。注意:我的客户有不同的屏幕分辨率。

在我的 vsto 项目中,我尝试创建一个自定义用户控件,并将其附加到 excel 窗格中。

请看下面我的代码:

        private void btnDownload_Click(object sender, RibbonControlEventArgs e)
    {
        taskPaneView = new ucCusipAddPanel();

        if (myTaskPane == null)
        {
            myTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(taskPaneView, "My Custom Task Pane");
            myTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
            myTaskPane.DockPositionRestrict = Office.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange;
            myTaskPane.Visible = true;
            myTaskPane.Width = 303;
        }
        else
        {
            myTaskPane.Visible = true;
            taskPaneView.BringToFront();
            taskPaneView.Focus();
        }
    }

ucCusipAddPanel是我的用户控件的名称。

这就是单击功能区按钮时调用我的自定义任务窗格的方式。我已经将我的用户控件的 AutoSize 属性 设置为 true 但问题仍然存在。

我该如何解决这个问题? 先感谢您。

你需要玩玩myTaskPane对象的AutoScaleMode

我认为正确的解决方案是使用:myTaskPane.AutoScaleMode = AutoScaleMode.Dpi;

参见 MSDN