在Visio绘图控制(在WPF应用程序中托管)中更改形状's大小的问题
本文关键字:问题 控制 绘图 Visio WPF 应用程序 | 更新日期: 2023-09-27 18:17:20
我正在做一个项目,涉及到在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的设备独立单元的问题,但我不知道如何解决。
希望你能帮助我。谢谢!欢呼。弗朗西斯科·
问题在于标准Visio绘图比例(建筑),其中3/32英寸= 1英尺。做一些数学运算就得到了96的乘数。我设法修改了图纸比例和纸比例。