C# 改变形状的问题';Visio绘图控件中的大小(托管在WPF应用程序中)

C# 改变形状的问题';Visio绘图控件中的大小(托管在WPF应用程序中),c#,wpf,visio,C#,Wpf,Visio,我正在从事一个项目,该项目涉及在WPF应用程序中使用Visio的绘图控件。我可以托管该控件并在应用程序中使用它,但在调整形状大小时遇到了一些问题 问题出在这里。 在Shapeaded事件处理程序中,我尝试使用以下代码更改形状的大小 e.shape.get_CellsSRC( (short)Microsoft.Office.Interop.Visio.VisSectionIndices. visSectionObject, (short)Microsoft.Office.I

我正在从事一个项目,该项目涉及在WPF应用程序中使用Visio的绘图控件。我可以托管该控件并在应用程序中使用它,但在调整形状大小时遇到了一些问题

问题出在这里。 在Shapeaded事件处理程序中,我尝试使用以下代码更改形状的大小

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
因此,如果我使用高度=宽度=1,我得到一个形状,在纸上是1cm*1cm,但在它的属性中,它说它是96cm*96cm。 我认为这是一个与WPF的设备无关单元相关的问题,但我不知道如何解决

希望你能帮助我。 谢谢 干杯
-弗朗西斯科

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