【发布时间】:2025-11-23 14:15:02
【问题描述】:
我正在处理一个项目,该项目涉及在 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);
此代码似乎有效,但发生如下:
- 绘图控件中的形状具有完全指定的宽度和高度(根据标尺)
- 形状的高度和宽度乘以 96。
因此,如果我使用 height = width = 1,我会得到一个在纸上为 1cm * 1cm 但在其属性中显示为 96cm*96cm 的形状。 我认为这是与 WPF 的 Device Indipendent Units 有关的问题,但我不知道如何解决。
希望你能帮助我。 谢谢! 干杯。 -弗朗西斯科
【问题讨论】: