在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绘图控制(在WPF应用程序中托管)中更改形状's大小的问题

问题在于标准Visio绘图比例(建筑),其中3/32英寸= 1英尺。做一些数学运算就得到了96的乘数。我设法修改了图纸比例和纸比例。