例如这一行:
gfx.DrawString(
"Bit Depth: " + lightning.BitDepth,
new XFont("Arial", 14),
XBrushes.Black,
new XRect(50, 330, page.Width, page.Height), XStringFormats.TopLeft);
这两个
page.Width
、page.Height
都已过时。
警告信息:
严重性代码描述项目文件行抑制状态
警告(活动)CS0618“XUnit.implicit 运算符 double(XUnit)”已过时:“在 PDFsharp 6.1 中,隐式转换为 double 被标记为过时,因为它会导致误解和意外行为。请改用 XUnit.Point 属性。 PdfReporter.cs 54
如何更改?如果有人可以向我展示这条线应该是什么样子,然后我会将它应用于所有其他线,并发出与我相同的警告。
没有
XUnit.Point
有XUnit.FromPoint
您看到的警告来自 从
XUnit
到 double 的隐式转换,可能是因为由 Type
(XGraphicsUnit
) 属性确定的单位转换生成的值。
您收到此警告是因为您正在使用
XRect(double x, double y, double width, double height)
构造函数,并且传递了 [PdfPage].Width
和 [PdfPage].Height
(它们代表 XUnit
),这会触发隐式转换运算符。
建议的更改是直接使用 XUnit.Point 属性,它返回一个双精度值,其中 Type 设置为
XGraphicsUnit.Point
。
您只需将
page.Width
和 page.Height
更改为 page.Width.Point
和 page.Height.Point
,所以:
[...] new XRect(50, 330, page.Width.Point, page.Height.Point) [...]
标记为
Obsolete
隐式运算符,通知以前的实现现在可能会得到意外结果,但它当前返回与 XUnit.Point
属性相同的值。