在 pdfsharp 中使用 c# winforms PdfPage 宽度和高度已过时。如何解决所有警告?

问题描述 投票:0回答:1

例如这一行:

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

c# winforms pdfsharp
1个回答
0
投票

您看到的警告来自

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
属性相同的值。

© www.soinside.com 2019 - 2024. All rights reserved.