Проблемы с изменением размера фигуры в Visio Drawing Control (размещается в приложении WPF) - PullRequest
0 голосов
/ 07 декабря 2011

Я работаю над проектом, в котором используется Visio's Drawing Control, встроенный в приложение WPF. Я могу разместить элемент управления и использовать его в своем приложении, но у меня возникают некоторые проблемы с изменением размера фигур.

Вот проблема. в обработчике событий ShapeAdded я пытаюсь изменить размер фигуры с помощью этого кода

e.shape.get_CellsSRC(
    (short)Microsoft.Office.Interop.Visio.VisSectionIndices.
    visSectionObject,
    (short)Microsoft.Office.Interop.Visio.VisRowIndices.
    visRowXFormOut,
    (short)Microsoft.Office.Interop.Visio.VisCellIndices.
    visXFormHeight).set_Result("CM", height);

e.shape.get_CellsSRC(
    (short)Microsoft.Office.Interop.Visio.VisSectionIndices.
    visSectionObject,
    (short)Microsoft.Office.Interop.Visio.VisRowIndices.
    visRowXFormOut,
    (short)Microsoft.Office.Interop.Visio.VisCellIndices.
    visXFormWidth).set_Result("CM", width);

Этот код работает, но работает следующим образом:

  • фигура имеет в чертеже элемент управления точно заданную ширину и высоту (соответственно линейкам)
  • высота и ширина формы умножаются на 96.

Так что, если я использую height = width = 1, я получаю форму, которая на бумаге равна 1 см * 1 см, но по своим свойствам она говорит, что она равна 96 см * 96 см. Я думаю, что это проблема, связанная с независимыми от устройств единицами WPF, но я не понимаю, как ее решить.

Надеюсь, вы сможете мне помочь. Спасибо! Приветствия. -Francesco

1 Ответ

0 голосов
/ 09 января 2012

Проблемой была стандартная шкала рисования Visio (архитектурная), где 3/32 дюйма = 1 фут. Занимаясь математикой, получаю множитель 96. Мне удалось изменить масштаб чертежа и масштаб бумаги.

...