我正在开发一个项目,该项目涉及在WPF应用程序中使用Visio的绘图控件。我能够托管控件并在我的应用程序中使用它,但是我在调整形状大小时遇到了一些问题。
这是问题所在。 在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);
此代码似乎有效,但发生如下:
因此,如果我使用height = width = 1,我会在纸上得到一个1cm * 1cm的形状,但在它的属性中它表示它是96cm * 96cm。 我认为这是与WPF设备独立单元相关的问题,但我不知道如何解决。
希望你能帮助我。 谢谢! 干杯。 -Francesco答案 0 :(得分:0)
问题是标准的Visio绘图比例(架构),其中3/32英寸= 1英尺。 做一些数学计算得出了96倍的乘数。我管理修改了绘图比例和纸张比例。