2017-01-30 84 views
1

我注意到Office.js dialogAPI有問題的行爲。Office.js對話框API和多DPI顯示

事實上,我使用兩臺顯示器,一臺是具有250%變焦的高DPI(3840 * 2160)。第二個是1920 * 1080(變焦100%)。

如果在監視器1中設置了Office,並且如果打開對話框API(讓我們說80%的默認值),則使用兩個監視器的擴展來計算對話框的大小。因此,對話窗口變得巨大,跨越兩個顯示器,不能在不調整大小的情況下使用。

回答

1

謝謝你Benoit。是的,這是我們知道並且正在跟進的問題。

+0

謝謝Humberto ...我將測試@WrathOfZombies解決方法並查看誰將獲得接受的答案。如果有效,我將不得不在漏洞確認和解決方法之間進行選擇... –

1

您可以嘗試在OfficeHelpers.js中使用對話助手。它包含在位於此處的v0.5.0中(https://unpkg.com/@microsoft/[email protected]/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', 
    } 
}); 
+0

我會看看,謝謝 –