Infragistics 15.2 WorksheetImage.SetBoundsInTwips编译错误

时间:2015-12-07 21:06:47

标签: c# infragistics

我有以下代码

System.Drawing.Image logo = ... (getting logo)
WorksheetImage worksheetImage = new WorksheetImage(logo);
worksheetImage.PositioningMode = ShapePositioningMode.DontMoveOrSizeWithCells;

// Original code (works with Infragistics 13.1)
Rectangle imageRect = new Rectangle(100, 100, 10 * logo.Width, 10 * logo.Height);
worksheetImage.SetBoundsInTwips(worksheet, imageRect, true); // Breaks here

以下代码适用于Infragistics 13.1库。但是,当迁移到15.2时,编译器会发出错误:

  

最佳重载方法匹配   ' Infragistics.Documents.Excel.WorksheetImage.SetBoundsInTwips(Infragistics.Documents.Excel.Worksheet,   System.Windows.Rect,bool)'有一些无效的论点

     

参数2:无法转换为System.Drawing.Rectangle'至   ' System.Windows.Rect'

所以基本上它说第二个参数应该是System.Windows.Rect类型而不是System.Drawing.Rectangle。信息here表示我传入的类型是正确的,但编译器不同意。为什么会这样?

2 个答案:

答案 0 :(得分:3)

Infragistics WindowsForms Excel引擎的SetBoundsInTwips方法确实使用System.Drawing.Rect作为其参数之一。但是WPF implementation使用System.Windows.Rect。如果此调用没有编译,那么您可能正在使用WPF库。请检查项目的参考资料,看看他们是否使用WPF程序集(InfragisticsWPF4.Documents.Excel.v15.2)并将其替换为WF程序集(Infragistics4.Documents.Excel.v15.2)。

答案 1 :(得分:0)

所以问题已经解决了 - 显然,在Infragistics 15.2中WPF中的方法SetBoundsInTwips将Rect与13.1中的Rectangle对立,因此将Rectangle更改为Rect可以完成这项工作。