2017-01-30 31 views
1

Я заметил проблемное поведение Office.js dialogAPI.Диалог API Office.js и несколько дисплеев с высоким DPI

Действительно, я использую два монитора, один из которых является высоким DPI (3840 * 2160) с 250-кратным увеличением. Второй - 1920 * 1080 (масштаб 100%).

Если Office установлен на мониторе 1, и если я открою dialogAPI (скажем, с 80% значениями по умолчанию), размер диалогового окна вычисляется с использованием расширения двух мониторов. Поэтому диалоговые окна становятся гигантскими, охватывают два дисплея и не могут использоваться без изменения размера.

ответ

1

Спасибо Бенуа. Да, это проблема, о которой мы знаем и в настоящее время следим.

+0

Спасибо Хамберто ... Я проведу обходное решение @WrathOfZombies и посмотрю, кто получит принятый ответ. Если это сработает, мне придется выбирать между признанием ошибки и обходным решением ... –

1

Не могли бы вы использовать помощник Dialog в 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

Я посмотрю, спасибо –