在 PdfSharp 中,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个回答
2
投票

您看到的警告来自

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.