【问题标题】:Office.js dialog API and multiple displays with high DPIOffice.js 对话框 API 和具有高 DPI 的多个显示
【发布时间】:2017-01-30 16:16:35
【问题描述】:

我注意到 Office.js dialogAPI 的一个有问题的行为。

确实,我使用了两台显示器,一台是高 DPI (3840*2160) 和 250% 缩放。第二个是 1920*1080(缩放 100%)。

如果在监视器 1 中设置了 Office,并且我打开了 dialogAPI(假设使用 80% 的默认值),则使用两个监视器的扩展名计算对话框的大小。因此,对话框窗口变得巨大,跨越两个显示器,并且在不调整大小的情况下无法使用。

【问题讨论】:

    标签: office-js office-addins outlook-web-addins


    【解决方案1】:

    谢谢伯努瓦。是的,这是我们知道的一个问题,目前正在跟进。

    【讨论】:

    • 谢谢 Humberto... 我会测试@WrathOfZombies 的解决方法,看看谁会得到接受的答案。如果它有效,我将不得不在错误确认和解决方法之间做出选择......
    【解决方案2】:

    您能否尝试使用 OfficeHelpers.js 中的 Dialog 帮助程序。它包含在 v0.5.0 中,位于此处 (https://unpkg.com/@microsoft/office-js-helpers@0.5.0/dist/office.helpers.js)。

    对话框助手允许以像素为单位指定宽度和高度,而不是百分比,我们在内部计算百分比并进行 DialogAPI 调用。

    目前,它应该检测可用空间并创建具有您指定大小的对话框。也就是说,对话框采用生成它的窗口的大小。因此,如果您有两台显示器,一台是 4k,一台是 1280x720,并且您生成了一个 1920x1080 的对话框,它看起来会很大并且不会缩小以适应。这是目前的限制。

    如果您遇到任何问题,请告诉我。这是示例代码:

    (function () {
        $(document).ready(function () {
            Office.initialize = function () {
                // specify the HTTPS url and width and height in pixels.
                // the fourth parameter is to switch to using Microsoft Teams Dialog.
    
                var dialog = new OfficeHelpers.Dialog('<dialog url>', 1024, 768);
                dialog.result.then(function (value) {
                    console.log(value);
                }).catch(function (error) {
                    OfficeHelpers.Utilities.log(error);
                });            
            }
        });
    })();
    
    // Some where in the Dialog
    OfficeHelpers.Dialog.close({
        a: 1,
        alpha: 2,
        'meao': 'cat',
        b: {
            a: 1,
            alpha: 2,
            'meao': 'cat',
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-03
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      相关资源
      最近更新 更多